記事一覧

Excelで12倍仕事を速くしよう! - テンプレートセルの活用

  

  

Excelで12倍仕事を速くしよう! - テンプレートセルの活用

ハロー、みなさん。エジソンです。

前回に続き、Excelで仕事を効率化するテクニックをご紹介いたします。

  

セルテンプレートから文字列を量産しよう

プログラミングをしていると良くありがちなのが、『文字全体の大枠は同じなんだけど一部だけ異なるパターン』の文字列を沢山作りたくなるということ。

そのような場合は、セルテンプレート(雛形)を活用すれば簡単に文字列を量産することができるでしょう!

ここからは、実践編ということでExcelを使いながら説明していきます。


テンプレート文字列を埋め込む

以下は、htmlテーブルの行を生成するテンプレートです。

excel12-2_1.png 

『$name』など、$(ダラー)で始まる箇所は置き換えたい文字です。上図では、$ を用いていますが、$ を使おうが他の記号を使おうが、特にこれといった決まりはありません。

置換する際に正しく指定すれば良いだけなので、『%name%』 などでも一向に構いません。

本記事では、$(ダラー)で始まる文字列を置換え文字として説明を進めていきます。


埋め込みたい文字データをエクセルの表にする

例として名簿リストを作ります。名前・かな・住所・電話の4列があると仮定します。

excel12-2_2.png 


テンプレートから文字列を作成する

行の右横のセルに、テンプレートセルを読み込むための数式を入力します。

まずは、『=$B$30』と書きましょう。

すると、テンプレートセルの内容がそのまま表示されます。ここからさらにテンプレート内の文字を置換するために、SUBSTITUTE関数を使います。

SUBSTITUTE関数では、

第一引数に対象文字列。
第二引数に検索文字列。
第三引数に置換文字列 を指定します。

=SUBSTITUTE($B$30, "$name", B34) と書いて、$name部分を名簿行の名前列で置き換えましょう。

excel12-2_3.png 

すると、『$name』が、『山田 太郎』で置き換わったことが確認できました。

ここでのポイントは、テンプレートセルの部分を 『$B$30』のように $ を付けて、列と行を絶対参照にしている部分です。絶対参照にしておけば、数式をコピペしても $B$30 部分が変化しないようになります。

さて、SUBSTITUTE関数を実行することで、$name部分が該当セルの値で置き換わりましたので、残りの置き換わっていない部分を、順次置き換えていきましょう。

SUBSTITUTE関数の結果に対して、さらにSUBSTITUTE関数でひたすら囲って行けばOKです。最終形態は以下のようになります。

=SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE($B$30, "$name", B34),"$kana",C34),"$address",D34),"$tel",E34)

括弧の数が多くて分かりづらいので、改行して見やすくします。

=SUBSTITUTE(
      SUBSTITUTE(
          SUBSTITUTE(
              SUBSTITUTE($B$30, "$name", B34)
          ,"$kana",C34)
      ,"$address",D34)
  ,"$tel",E34)


excel12-2_4.png

これで、名前・ふりがな・住所・電話番号が無事置き換わりました。作成したセル内の数式を順次下の行にコピペしていけば、各行の文字列が完成します。


作成された文字列を取り出す 

続いて、作成した文字列を選択してエディタに貼り付けましょう。

エディタに貼り付けた内容を注視すると、<tr>付近前方に "(ダブルクォーテーション) が付いているのが分かります。また、</tr>付近後方に " (ダブルクォーテーション)が付いているのが分かります。

エクセルでは、セル内で改行して内容をメモ帳などにコピペすると、最初と最後に"(ダブルクォーテーション)が付与されます。

したがって、これらをエディタの置換機能で一発置換しましょう。

置換時の条件は幾つか考えられます。

テンプレート内に一切 " が無いなら、 『"』 → 『空白』 にしてしまえば良いでしょう。文章内に、"がある場合、そのまま " を検索文字に指定して一発置換すると、置換したくない箇所まで置き換わるため、 『"<tr> → 『<tr>』・ 『</tr>"』 → 『</tr>』 というパターンで置き換えると良いでしょう。

excel12-2_5.png 

置換え結果は以下のようになります。こちらを対象のファイルに移し変えれば完了です。

excel12-2_6.png 

最後の仕上げに、改行コードを置換します。エクセルのセル内の改行コードは  『\n』=(LF)  になります。Windowsの改行コードは通常 『\r\n』=(CRLF) になるため、

貼り付ける先の対象ソースの改行コードが 『\r\n』 ならば、 『\n』 → 『\r\n』 の条件で置き換えます。

サクラエディタなら、置換オプションで正規表現にチェックを付けて、 『\n』 → 『\r\n』 に変換すればOKです。正規表現にチェックすると、 \n 、 \r\n は改行コードとして認識されて動作します。


おわりに

以上のテクニックを覚えておけば、エクセルの表をベースにして、大量の文字を量産することができるようになります。

プログラムを作成せずに行えるというのも、ポイントの一つかなと思います。

お試しいただければ幸いです!
関連記事

このエントリーをはてなブックマークに追加

コメント

コメントの投稿

非公開コメント

プロフィール

EZOLABブログへようこそ。
EZOLABは、札幌のソフトウェア会社です。

http://ezolab.co.jp