dポイントプレゼントキャンペーン実施中!

生徒配布用の穴埋め形式のプリントを使用しています。
『〔1 △ 〕は〔2 □ 〕であり〔3 ○ 〕となる。』というありふれた形式です。
〔   〕の中に入る解答を、冒頭の番号とともに一括してプリントの最後に表示する
マクロを作ってもらいました。
1 △  2 □   3 ○  と文書の最後に表示されます。
ところがやっかいなことに〔〕内の数字を「一太郎の自動連番」で作成していくと
〔10 ※〕〔11 ★ 〕〔12 ☆ 〕などの数字はすべて、1 ※ 1 ★ 1 ☆という具合に
〔〕内の連番数字に連携することなく
すべて冒頭の番号が「1」(十の位の数字、従って連番が20番台になると「2」
としか表示されません。

以下に「作成してもらった」マクロを添付しています。
どこを変更したら、
「一太郎の連番で作成した数字で、10以上の2桁目以降もきちんと表示できる」ようになりますか。
よろしくご教示ください(作成者が退職されて職場にはいません)。

!!Jumpstart()
Errorbreakmode(1,1,1)
do
Searchstring("〔")
!! if searchstringresult() = false
!! exit do
!! end if
処理
loop
END
!!!!!!!!!!!!!!!!!!!
sub  処理
nextcharacter()
do
if getcharacter()<>"〕"
delete()
%t=%t+1
end if
loop while getcharacter()<>"〕"
for %i =1 to %t+1
insert(" ")
next
end sub

A 回答 (1件)

1キャラクタ文字単位で拾って一つ目の文字を数値としているのだから、正常な動作ですね。


連番は1キャラクタとして扱われるから当然なんですよ。
連番の「10」は、これだけで1キャラクタとした扱われ、さらにその先頭の1文字だけが拾われているわけです。

連番のキャラクタ文字を数値に変換する処理を挟み込むことで対策できますが、
今度は連番を使わない場合の処理を記述する必要があります。

理由が分かったところで自力で修正してみてください。
がんばれ。


・・・余談(というか、こっちのほうがメイン)・・・

諦めて、一つずつ手作業で行うことを強く強く強く強くお勧めします。
マクロその物が分からないんでしょ?

そのままで使いたいなら、
連番を使った後、連番の右に連番の数字を改めて記入しましょう。
そして連番を解除する。
少なくともこれなら、対応する数字を間違えることはない。

・・・
代わりにマクロを修正をしてもらった場合、目の前にある問題は解決したように見えるけど、それは疑問の先送りにしかならないぜ。
根本的な問題は解決していないんだ。
仕様が変わった時にまた質問しなきゃならないことになるのは目に見えている。

教える立場にある人なら、これくらいは認識できているはずですが...。

そんなわけで、何が分からないのですか?
 ・作り変えるために必要なマクロの知識が欲しいのか、
 ・試行錯誤したが希望する結果を得られないのでアドバイスが欲しいのか、
…という事であれば相談に乗ることはできます。
(前述の回答は後者です)

ここは、代わりに作り替えてくださいという「作業依頼」をする場所ではありません。
「利用規約」と「投稿ガイドライン」を熟読して理解したうえでルールを守って利用するようにしましょう。
    • good
    • 1
この回答へのお礼

貴重なご意見有り難うございました。連番ではなく、手書きで書き込めば何てことはなく動くマクロですので、ご教示いただいたとおりにするのが最善の策と、二晩考え続けて答えが出ました。ありがとうございました。

お礼日時:2020/02/08 16:40

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!