アンケートフォームを作っていて、エクセル原稿からコピペする時に、文字列の頭に文字を追加したかったのですが、計算式だと結合している部分がある時に面倒です。
こちらの知恵袋で見つけたマクロを使うやり方が、ものすごく簡単で一瞬でできたのでメモ。
エクセルの文字列の頭に同じ文字を一気に入力することはできますか? – Yahoo!知恵袋
http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1019564565
VBEを開き(Alt + F11)、VBEのメニューバー→挿入から標準モジュールを挿入。
出てきた画面に下記マクロをコピペ。
1 2 3 4 5 6 |
Sub Sample() Dim R As Range For Each R In Selection R.Value = "追加する文字" & R.Value Next R End Sub |
頭に文字を付けたい範囲を選択した状態でマクロを実行。
追加する文字の中にエスケープしなければならない文字がある場合、その文字の前に「”」を追加。
例:「<p class=”ex” >」を追加したい。→上記マクロの「追加する文字」の部分に「<p class=””ex”” >」
追記:文末に文字を追加するマクロ
1 2 3 4 5 6 7 8 9 |
Sub sample() Dim xRng As Range Const xConst As String = "追加する文字" If TypeName(Selection) = "Range" Then For Each xRng In Selection xRng.Value = xRng.Value & xConst Next xRng End If End Sub |
追記:文頭、文末に文字を追加するマクロ
1 2 3 4 5 6 7 8 9 10 11 12 |
Sub AppendHeadTail() Dim head As String Dim tail As String Dim target As Range head = InputBox("先頭に追加する文字") tail = InputBox("末尾に追加する文字") For Each target In Selection target.Value = head & target.Value & tail Next End Sub |