文頭および文末に文字を挿入するマクロ(ランチャー1)
2021年03月20日
エクセルで文字列として入力する場合、「’」を1文字目に入力する。
まとめて文字列にしたり戻したり出来たら便利だなってことで
文頭に文字を追加したり、1文字目を消したりするマクロを作ろうか。
文頭と文末どっちも操作できるといいかもってことで
ユーザフォームを使って作ってみた。
通番も一緒にできたら面白いので、
入力フォームに「¥n」を入力したら通番を振る仕様に。
ユーザーフォームは使い勝手はいいかもしれないけど、
いかんせん作るのがめんどくさい。
オートシェイプでお絵描きをして、
描いた絵の全部品の設定を調整しないといけない。
文頭と文末に挿入する文字の入力用にそれぞれ入力フォームを用意。
キャンセルボタンと実行ボタンを作り、ショートカットキーを設定。
キャンセルボタンにESCキーを紐づけ。
タブ遷移順序を調整して、文頭、文末、実行ボタンの順にEnter遷移可能にした。
ダウンロード
今回デフォルトから変更したプロパティは以下の通り。
オブジェクト名:strAddForm(フォーム名)
Caption(表示名):セル内容の両端に文字列を追加
オブジェクト名:stText '文頭文字
MultiLine(改行可否):True
TabIndex(タブ遷移の順番):1
オブジェクト名:edText '文末文字
MultiLine(改行可否):True
TabIndex(タブ遷移の順番):2
オブジェクト名:CommandButton1 ’キャンセルボタン
Accelerator(操作キー Alt + ...):C
Cancel(ESCキー紐づけ):True
TabIndex(タブ遷移の順番):5
オブジェクト名:CommandButton2 '実行ボタン
Accelerator(操作キー Alt + ...):A
TabIndex(タブ遷移の順番):4
以下ソース
Sub Show_strAddForm() ’フォーム呼び出しモジュール
strAddForm.Show vbModal '・・・ モーダル表示 シート操作不可
'strAddForm.Show vbModeless '・・・ モードレス表示 シート操作可能
'strAddForm.Show vbModeless '・・・ モードレス表示 シート操作可能
End Sub
Private Sub CommandButton1_Click() 'キャンセルボタン
'https://excel-ubara.com/excelvba3/EXCELFORM003.html
Unload Me 'ユーザーフォームを閉じる
End Sub
Private Sub CommandButton2_Click() '実行ボタン
Call strAddMain(stText, edText)
Unload Me
End Sub
Sub strAddMain(stText As String, edText As String)
Dim r As Range, cnt As Long
For Each r In Selection
cnt = cnt + 1
If Left(r.Formula, 1) <> "=" Then
r.Value = Replace(stText, "\n", cnt) & r.Value & Replace(edText, "\n", cnt)
End If
Next r
End Sub
stText 、edText は、それぞれ文頭、文末に挿入する文字列で、
入力フォームの値。
stText 、edText は、それぞれ文頭、文末に挿入する文字列で、
入力フォームの値。
PR
Comment