Home » エクセルマクロ・Excel VBAの使い方 » マクロのサンプル » 同じ文字列を追加するマクロ

対象:Excel2003, Excel2007, Excel2010

実務でExcelのデータを別のシステムに渡す場合には、いろいろな前処理が必要になります。

複数のセルの先頭に、同じ文字列を追加したいというのも、よく必要とされる処理の一つでしょう。

[スポンサード リンク]

私が最近扱っているExcelファイルでもそんな処理が必要となり、VBA(Visual Basic for Applications)でマクロを作ってみました。


▼選択したセルの先頭に文字列を追加するマクロ

Sub 先頭に文字列を追加する()

 Dim c As Range
 Dim str_add As String

 str_add = InputBox("先頭に追加したい文字列を入力してください。")
 If Len(str_add) = 0 Then Exit Sub

 For Each c In Selection
  If Len(c.Value) > 0 Then c.Value = str_add & c.Text
 Next

End Sub

先頭に文字列を追加したいセルを選択しておいて上記のマクロを実行すると、追加したい文字列を指定するダイアログボックスが表示され
 InputBox("先頭に追加したい文字列を入力してください。")
その指定された文字列を変数
 str_add = InputBox("...
に格納します。

ダイアログで何も入力されなければ、マクロを終了します。
 If Len(str_add) = 0 Then Exit Sub

ダイアログで何か入力されていれば、選択されているセルをループで処理していきます。
 For Each c In Selection ... Next

もしセルの中に何らかのデータが入力されていれば
 Len(c.Value) > 0
先のダイアログで指定された文字列を先頭に付加していきます。
c.Value = str_add & c.Text

特に難しい部分はないマクロですが文字列を追加する
「c.Value = str_add & c.Text」の部分は
「c.Value = str_add & c.Value」と
する方もいらっしゃるかもしれません。

先頭に文字列を付加したい、元のセルに入力されているデータが単純な文字列ならばValueプロパティでいいのですが、例えば、日付や時間データの入力されたセルで、Valueプロパティを使うと、ユーザーが望まない結果となってしまうはずですので、私はTextプロパティを利用しています。

Valueプロパティを使ったときにどんな結果になるかは、Excelの日付や時間はシリアル値と呼ばれる数値だということをご存知の方ならば、すぐにわかるでしょう。

Home » エクセルマクロ・Excel VBAの使い方 » マクロのサンプル » 同じ文字列を追加するマクロ

[スポンサード リンク]

トラックバック:0

TrackBack URL

Home » エクセルマクロ・Excel VBAの使い方 » マクロのサンプル » 同じ文字列を追加するマクロ

「マクロのサンプル」の記事一覧

検索

このページの上部へ戻る

.