0

エクセルマクロ初心者です。選択範囲をクリップボードにコピーしたい。

以下は、半分のソリューションが存在するリンクです。ポップアップ メッセージ ボックスに出力が表示されます。

Excel VBA マウスでユーザーが選択した範囲の範囲を取得

そのような

Sub macro1()
  MsgBox Selection.Address(ReferenceStyle:=xlA1, _
                           RowAbsolute:=False, ColumnAbsolute:=False)
End Sub

しかし、ポップアップをエスケープして結果をクリップボードに直接コピーしたい場合????

例:B15からE40およびF23セルまでのセルを選択した場合、メッセージは「B15:E40、F23」として表示され、これらの選択されたセルのセルコンテンツではなく、このメッセージをコピーしたい。

4

1 に答える 1

3

単純Selection.Copyに、選択した範囲をクリップボードに配置します:)

ファローアップ

選択した範囲のセル アドレスをコピーするには、これを行います。

'~~> Set a reference to Microsoft Forms Object Library
Sub Sample()
    Dim strAddr As String
    Dim MyDataObj As New DataObject

    strAddr = Selection.Address

    '~~> This will put the address string in the Clipboard. To test this
    '~~> After you run this macro, press CTL - V in Notepad.      
    MyDataObj.SetText strAddr        
    MyDataObj.PutInClipboard
End Sub

さらにフォローアップ

コンマをスラッシュに置き換えたい????

私のコメントで述べたように、カンマをスラッシュに置き換えます。

strAddr = Selection.Address
strAddr = Replace(strAddr, ",", "/")
于 2012-06-24T12:36:10.513 に答える