エクセルで、選択中のセルの文字列だけをコピーするVBAを作成したので以下に記します。

こんな人におすすめ

  • 定型的なテキストを数式を駆使して出力、手軽にコピペしたい
  • エクセルでコマンド実行用の手順をまとめたのだが、セルをコピペしてターミナルにコマンドを入力したら改行が入ってそのまま実行されちゃうので困る

動作確認済み環境
Windows 10 64bit + Microsoft Office 2016 64bit
※今回はモジュールではなく、シートにコードを入力する想定です
※ActiveX でボタンを作成、それをクリックして動作って感じ

Option Explicit

'選択中のセルの値を SetCB 処理
Private Sub CommandButton3_Click()

Dim SelectedRange As Range '選択中のセル

'アクティブセルを選択中のセルとして SetCB 処理実行
Set SelectedRange = ActiveCell
ValueCopyWithTextbox ActiveCell.Value

End Sub

'SetCB 処理実行 
Private Sub ValueCopyWithTextbox(ByVal str As String)

'テキストボックスを介して文字列を格納
  With CreateObject("Forms.TextBox.1")
    .MultiLine = True
    .Text = str
    .SelStart = 0
    .SelLength = .TextLength
    .Copy
  End With

End Sub

32bit のときはクリップボードを使っていたのですが、実は64bitになってから「動く人」と「動かない人」が出てきて、動かない人はペースト時に謎の文字列を出力してました。これ、OS起因だと思われるのですが、一応参考までにクリップボードを使ったスクリプトも以下に記します。

Private Sub CommandButton1_Click()
'クリップボードに文字列を格納
Dim SelectedRange As Range   '選択中のセル
Dim Clipboard As New DataObject 'クリップボードオブジェクト

    Set SelectedRange = ActiveCell
    With Clipboard
    .SetText Replace(Replace(ActiveCell.Value, vbCrLf, vbLf), vbLf, vbCrLf)
    .PutInClipboard
    End With

SelectedRange.Activate
End Sub

こちらは、Office 2010 32bit で動作確認をしてありますが、将来性を考えると。。。
ということで、コピペを楽にするスクリプトのご紹介でした。

コメントを残す

メールアドレスが公開されることはありません。

CAPTCHA