Excel VBA周り。。。Wordとの連携関係で落とし穴。。。
仕事の関係上、エクセルをよく使うが、時間の関係上VB(Visual Basic)は、必要に迫られたときに「えぃやっ!」とばかりに集中して組み上げる程度で、あまりに奥深いところ(?)までは触っていなかった。
ところで毎年、一定量のワードファイルの書式をチェックする必要があり、五月雨式に送られてくるファイルをその都度チェックすることを手作業でおこなっていた。 数としては100件に満たない程度で、2週間程度の間にばらばらと送られてくる。 ワードのVBまで手を出す余裕もなく、それほど苦にはならないので、いままでそのままにしていたが、ふとしたことからエクセルシート上にファイル書式情報を自動的に展開する方法のあることを知り、少しばかり手を伸ばしてみた。 ネットで「Excel Word VBA」等で検索すると Excel VBA 他のプログラムとの連係 ExcelVBA で Word オブジェクトを操作 等引っかかってくる。 こちらを参考にし、シートの追加部分は日付情報にて名前の重複判定をしなくても良いように改良し、一枚のシート上にて各行に複数ファイルの書式設定関係の情報を列方向に展開することとした。 で、やはり引っかかった。 「VB恐るべし」。。。といったところか。。。 エクセルのVBにてワードファイルを扱う場合に注意すべき点 ワードのオブジェクトに関連する関数類を使用するとき、初回のマクロ・VBA動作では問題なくても、2回目のマクロ・VBA動作にてエラーが発生する 修正前のコード概要例 --- エキサイトへの投稿時、変なところで引っかかるので、部分的に全角英数にしています。 Set fileSysObj = CreateObject("Scripting.FileSystemObject") 症状: 初回は問題なく動作する。エクセルシートを閉じずに2回目の実行を試みると、 PointsToMillimeters(targetDoc.PageSetup.TopMargin) の部分で「実行時エラー '462': リモート サーバーがないか、使用できる状態ではありません。」が発生する。 エラートラップ(on error)等にて捕捉して中断しても、うまく対処しないと Set wordApp = CreateObject("Word.Application") にてバックグラウンドで稼働しつづけているワードソフトが残った状態に陥るので、副作用が生じ、原因の特定にたどり着きにくくなる。 上記のような背景事情もあるためか、ネット上で、同様の症状について検索できるが、根本的な理由を説明しているものにはなかなかたどり着けなかった。(ざっくりと検索しただけなので、探せば的確なものが参照できたかもしれない。見つけ出したらリンクを貼り付ける予定。) 最終的に探し当てた下記が最も根本的な理由になっていると思われる。 MicroSoft サポート 「2 回目のコード実行時に Excel のオートメーションが失敗する」 https://support.microsoft.com/ja-jp/kb/178510/ja?wa=wsignin1.0 2015.05.17 02:50 追記、上記URL内の文章を今回のものとして(私なりに解釈した内容に)変更し引用(今回の状況に応じて変更した点の内、重要部分をオレンジにしています) 5.(前略)プログラムを開始します。 修正(というより追記)した部分(赤) wordApp.PointsToMillimeters(targetDoc.PageSetup.TopMargin) 修正後のコード概要 Set fileSysObj = CreateObject("Scripting.FileSystemObject") 2015.05.17 02:50 追記 その他、Excel VBAでワードオブジェクトを扱うときに注意すべき点(見つけたら追記していきます) 1.用紙の縦横に関するプロパティに割り当てられた数字が統一されていない。
by kisugi_jinen
| 2015-05-10 23:05
| program。。。
|
Trackback
|
Comments(0)
|
検索
カテゴリ
最新の記事
お知らせとリンク。。。
お知らせ
●コメントスパム対策のため、承認制に変更しました(2010.09.29) ●トラックバックのリンクチェック機能を追加しました。excite以外からのトラックバックをされる場合、当該記事へのリンクを埋め込んでください。 リンク ゲストブック ---Yahooジオシティーズ終了に伴い、利用できなくなっています。 来生自然のホームページ ---Yahooジオシティーズ終了に伴い、利用できなくなっています。 鉄鼠 ---「考える」ということに向き合う。。。 Genxx.blog 移転後http://blog.genxx.com/ ---「情」を含めて専門的な立場から「こころ」を模索し続けるGenさんのブログ。。。 研幾堂 ---山下裕嗣氏による哲学のサイト。以前、形而上学についてやりとりさせていただいた。 記事ランキング
最新のコメント
最新のトラックバック
以前の記事
フォロー中のブログ
外部リンク
ブログパーツ
ライフログ
ファン
ブログジャンル
画像一覧
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
ファン申請 |
||