このブログでは現在、「復刻シリーズ」として、手元にある昔のデータに付加価値を付けて再公開する試みをしています。
そういう中には、Wordマクロのプログラムも含まれます。
私のコードにかぎらず、何かを自動化したくて検索したときに古いマクロしか見つからなくて諦めた経験のある人も、いるかもしれません。
Wordのマクロ(VBA)はバージョンによって少しずつ変わってきているため、古いままでも使えるプログラムもあれば、修正しないと使えないものもあります。
ただ、動くか動かないかは、やってみないとわかりません。
欲しいコードがあるのなら、とりあえず、試してみればよいでしょう。
プログラムのコードをコピーして使う程度のWordマクロは、インストールして使うアプリケーションと違って、単なる「記述」にすぎません。
仮にうまく動かなかったとしても、そのことが原因で、パソコン本体のシステムが書き換わるとか悪影響が及ぶとかいったことは、起こらないのです。
もし動かない場合でも、1行ずつ止めながら順に処理を実行(ステップイン)すれば、どの部分が問題になったのか簡単に特定できます。
だからとにかく、欲しければ、古いコードでも使ってみればよいわけですね。
そして・・・・・
特定の記述が問題だとわかったら、その部分の意味を調べます。
インターネットの商用利用が1994年から、Googleの登場が1998年9月ですから、Word 2000以降であれば、ほぼ確実に、インターネット上のどこかに情報が転がっていると思います。
具体例をあげると、「表の行や列を挿入する」の中で、「Selection.InsertRowsAbove 1」というコードを書きました。
これをそのまま、Googleで検索します。
日本語で欲しい情報が見つからない場合は、英語圏で試してみましょう。
google.comで検索すると自動でgoogle.co.jpに飛ばされてしまうことがあるので、たとえばgoogle.co.ukを使います。
これなら、英語の資料を中心にして検索できます。
(実際に試して頂けばわかると思いますが、どのグーグルを使うかによって、結果が違います。)
UKで検索すると、手元の環境では、「VBA, Word Table Insert/Remove Rows/Columns - VBA and VB.Net...」というコンテンツが一番上にヒットしました。
こういうところに、コードの意味が書いてあったり使用例が載っていたりするわけです。
Wordのマクロは、ピリオドが「単語の区切り」のような位置づけですので、仮に一続きで出てこなければ、「Selection」と「InsertRowsAbove 1」に分けて検索するとか、「Macro」や「VBA」などのキーワードを掛け合わせて検索するとか、どうにでもなると思います。
たとえ求めていた情報「そのもの」が見つからなくても、大丈夫。
コードの使用例や説明文から、そのコードに関連する英語の表現やキーワード、プログラムの記述などが手に入ります。
こうして手に入れた情報を使って、もう一度、検索します。
プログラムが古いから使えない・・・・・ではなく、「古いプログラムを新しい環境で生かすには、どうするか」と考えてみればよいわけですね。
古いプログラムでも、自分でゼロから作るのに比べたら、たたき台があるほうがラクです。
プログラミングは、いわば翻訳と同じ。
「文法」があって「単語」があって、人間の言語(思考)を、コンピューターが理解できる言語に「翻訳」しているだけなのです。
英訳をするときに、既存の英文からの「英借文」で翻訳品質を上げるのと同じ感覚で、すでにあるコードをヒントにしていけば、知識のない翻訳者でも簡単なマクロプログラムなら自作できるようになりますよ。
■関連記事
1行マクロをWord 2010/2013で使う