順次、選択、そして繰り返し

プログラミングのことやITのこと、たまに演劇のことも書きます。

カウントアップマクロ

個人的に今欲しいマクロを作成してみた。

'変数宣言
Dim szGetText As String
Dim szSetText As String
Dim iCnt As String


'*************************************
'コピーした文字列の末尾を取得して
'カウントアップする
'*************************************
Sub GetText()

On Error GoTo GetTextError
    
    Selection.Copy

    With New DataObject
        .GetFromClipboard       '変数のデータをDataObjectに格納する
        szGetText = .GetText    'クリップボードから取得
        iCnt = Val(Right(szGetText, 3))
        iCnt = iCnt + 1
        '改行コード(vbLf)を考慮
        szSetText = Left(szGetText, Len(szGetText) - 3) 
    End With
    
    Exit Sub
    
GetTextError:

MsgBox ("エラー")

End Sub

'*************************************
'GetText()でカウントアップした
'文字列を貼り付ける
'*************************************
Sub SetText()

    With New DataObject
        .SetText szSetText & Format(iCnt, "0")  '数値から文字へ
        'DataObjectのデータをクリップボードに格納する
        .PutInClipboard                         
    End With
    
    ActiveSheet.Paste

End Sub


例えば次のデータがあるとする
f:id:sndstudy:20160831222104p:plain

そのデータをコピーして
f:id:sndstudy:20160831222122p:plain

別のセルに貼り付ければ、末尾の数字がカウントアップする
f:id:sndstudy:20160831222202p:plain

やっぱエビデンスの番号紐づけぐらいしか用途ないな……。

■参考サイト
クリップボードとデータのやりとりをする:Excel VBA|即効テクニック|Excel VBAを学ぶならmoug

Office TANAKA - Excel VBA Tips[クリップボードを操作する(1)]

Microsoft Forms 2.0 Object Libraryへの参照設定を行うには? :VBE(Visual Basic Editor)

Excel VBA 入門講座

VBA 文字列の改行

VBA 数値を変換