パーツ化とは
ExcelVBAマクロ初級者からの脱却が、処理のパーツ化(プロシージャの分割)と考えています。
マクロを作る上で基本機能をパーツ化する事で、開発時間の削減に繋がります。
処理はパーツ単位で分ける事を心掛けましょう。
分かりやすく説明すると、エクセルの「関数」と同様です。
SUM関数であれば セル内に「=SUM(1+2+3)」と記載すれば、セルには「6」と表示されますよね。
値を渡せば正しい値で返ってくる動きです。
このコードをコピペでOK
'■指定したキーワードをクリップボードへコピーする Public Function call_ClipBoardSave(temp As String) Dim ClipBoard As New DataObject With ClipBoard .SetText temp .PutInClipboard End With End Function
使い方
上記をコピペでお好きなモジュール内に記載してください。
Dim temp As String temp = "この文章をクリップボードへコピーします" call_ClipBoardSave (temp)
結果イメージ
クリップボードに「この文章をクリップボードへコピーします」がコピーされます。
Ctrl+Cで該当の文章をコピーした状態ですので、
Ctrl+Vでそのまま貼り付けすることができます。(もちろんエクセル以外にも貼り付けする事が可能です)
注意点
- 上記コードを使用するには「Microsoft Forms 2.0 Object Library」を参照設定する必要があります。
VBA上でユーザーフォームを挿入すると自動的にこのライブラリが参照設定されます。
どんな時に使える?
エクセルマクロ単体では変数で代用できるため、あまり使用するケースは少ないかもしれません。
以下のような外部ソフトと連動や、外部とのやり取りする場合に使います。
例)マクロ上で商品コードでの検索をして検索結果になかった場合
エラー原因をエクセル外(業務ソフト側)で調査する時に、該当の商品コードがコピーが出来ていれば作業効率があがります。
エラー原因をエクセル外(業務ソフト側)で調査する時に、該当の商品コードがコピーが出来ていれば作業効率があがります。
例)オークションサイトでの文面のやり取りに、定型文などの文面のコピーさせる。
マクロを実行後、都度やり取り必要な情報をコピペでやり取りする事で、人が作業する内容が減ります。
マクロを実行後、都度やり取り必要な情報をコピペでやり取りする事で、人が作業する内容が減ります。
例)定形進捗報告メール、売上報告など、毎日必要な内容を提携でやり取りする。
メール報告やLINE報告が必要な場合があると思います。Windowsの機能を使用し、コピーする形なのでエクセルの枠を超えて使用可能です。
メール報告やLINE報告が必要な場合があると思います。Windowsの機能を使用し、コピーする形なのでエクセルの枠を超えて使用可能です。
その他)クリップボードからデータを取得する方法
以下のコードのようにGetFromClipboardを使用してクリップボードからデータ取得も可能です。
Dim ClipBoard As New DataObject With ClipBoard .GetFromClipboard MsgBox GetFromClipboard End With
コメント