間に「漢字書取問題作成マクロ」の話題が入ってしまった。
話を元に戻そう。話は「日経表計算大会腕自慢マクロ部門を一太郎で!!」だ。
前回は一太郎マクロに新規シートを追加する命令がないので
PushKeys()で誤魔化したところまでであった。
そこで次にくまぷーは元シートの内容を新規シートにコピーするために
次のコードを書いた。赤い部分が前回のコードに付け加えた部分である。
ここさえできてしまえば完成したも同じである。
!!シート名をデフォルトに戻す
%Str=GetSheetCount( )
CurrentSheetItem("Sheet" & %Str)
!!元シートをコピー
SelectAll()
Clip()
!!新規シート追加
PushKeys("#F{DOWN}{DOWN}{DOWN}{DOWN}{DOWN"\\
& "}{DOWN}{DOWN}{DOWN}{DOWN}{DOWN}"\\
& "{DOWN}{RIGHT}{ENTER}#N")
!!新規シートの名前設定
ChangeCurrentSheet( "Sheet" & %Str )
%Str=GetSheetCount( )
CurrentSheetItem("2007年" & %Str & "月")
!!新規シートに元シートをコピー
Paste()
!!元のシートの名前を書き戻す
%Str=%Str-1
ChangeCurrentSheet( "Sheet" & %Str )
CurrentSheetItem("2007年" & %Str & "月")
ChangeCurrentSheet( "2007年" &(%Str+1) & "月")
くまぷーは上のマクロを実行してみた。狙い通りに新規シートが追加され、 元シートの内容がコピーされていた。うまくいった・・・と思ってさらに 新規シートからもう一枚、新にシートを追加するためにマクロを 実行してみようとした。すると・・・。 | ||
(・_・)......ン? な、ない!! | ||
文書マクロのリストに「シートを追加」マクロが登録されていないのだ。 一太郎では「文書マクロ」という言葉を使ってはいるが、その実態は 「文書マクロ」ではなく「シートマクロ」であったのだ。 「文書マクロ」というならば、文書単位、つまり同じファイルのなかならば、 どのシートからも利用できるはずなのだが、一太郎はシートにマクロが くっついているのだ。 一太郎の複数シートシステムは内部的には複数の文書を1つのファイルに 見せかけているに過ぎないのであろう。 仰っていたことに関わっているのかも知れない。
|
コメント