記事カテゴリ

マクロ資産への対応

職員が作成したマクロを含むシートについて、これまではオープンオフィス上での稼動が困難と評価していましたが、最近のバージョン(2.4以降)での再現性が高くなってきたため、マクロ資産の活用可能性について再検討を進めています。

状況

既存のマクロ資産のうち数個について、マクロに含まれる命令文の一部を修正することで、概ね動作が再現される様になってきています。

事例

現在のところ、下記のようなケースで、エラー発生を回避することに成功しています。
 
修正内容 説明
修正前
For n = Range("C2") To Range("C3").Value
~~~~

Next

修正後

For n = Range("C2").value To Range("C3").value
~~~~

Next
For文による繰り返しの初期値が
「Range("C2")」
と記載されていたが、これを
「Range("C2").value」
と修正し、明示的に指定することで動作させることが出来た。
修正前

Worksheets("出生").PrintOut Copies:=1, Collate:=True


修正後

Sheets("出生").Select
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True
Sheets("入力").Select
選択中のシートから、他のシートを直接印刷出来ず、エラーが発生していたため、印刷対象シートに切り替え、印刷後に元のシートに戻ってくるように修正した。
修正前
    変更数 = Application.CountA(Worksheets("入力フォーム").Range("D11:D16"))

修正後
    変更数 = Worksheets("作業領域").Range("B4")
Application.countでエラー発生しており、Application.~~と記載する形の、VBA内でのEXCEL関数記述を使用することが出来なかった。

代替案として、作業用のシートを新規に追加てCOUNT関数を記載し、マクロから参照することで解決した。
 

外部との関連

職員が独自に作成したシートについては、上記のような形で回避策を取ることで、一定の活用が出来るものと期待しています。
しかし、国や県から依頼される各種調査・報告では、マクロを多用し、またパスワード保護されたファイルへの入力を求められることが殆どという状況です。
仮にこの点を解決しようとした場合、以下のような対応が必要になると思われます。
  • 調査・報告のWEBアプリケーション化
  • 調査票のオープンオフィスへの対応
  • オープンオフィスのマクロ再現性向上

データのライセンス

 本ページに掲載されているコンテンツを利用する場合には、本市のデータを利用している旨の表示をすれば自由に利用でき、二次的著作物の作成が可能となります。
 クリエイティブコモンズ画像
 この作品は、クリエイティブ・コモンズ・ライセンスの下でライセンスされています。
 

お問い合わせ