• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Excel 2007 VBAでテキストBOXがコピーできない)

Excel 2007 VBAでテキストBOXがコピーできない

このQ&Aのポイント
  • 顧客の手紙作成マクロで、Excel 2007 VBAでテキストBOXがコピーできない問題が発生しています。自宅のExcel 2003では成功しているが、会社のExcel 2007では2通目以降にテキストBOXがコピーできません。
  • マクロは、顧客名簿を含むSheet1と顧客用の手紙を含むSheet2を使用します。手紙は20行で1通で、必要な枚数分だけ21行目に挿入されます。
  • マクロの一部を示します。 Dim 資料数 As Integer Dim 複写数 As Integer Sub Mc1_ページ増() 資料数 = Application.WorksheetFunction.Count(Range("Sheet1!A2:A65536")) 複写数 = (資料数 - 2) * 20 Rows("21:40").Copy Rows("21:21").Resize(複写数).Insert Shift:=xlDown End Sub

質問者が選んだベストアンサー

  • ベストアンサー
  • takana_
  • ベストアンサー率44% (21/47)
回答No.1

おっしゃる通り、手動で挿入を実行してみましたが、 Excel2003ではテキストボックスが複数複製されますが、 Excel2007ではテキストボックスが1個しか複製されないようです どうやらマクロが問題ではなく仕様のようです。 なのでマクロを改造して Rows("21:21").Resize(複写数).Insert Shift:=xlDown をループで複写数回数実行させればどうですか? こんな感じ(未検証) FOR i=1 TO 複写数 Rows("21:40").Copy Rows("21:21").Insert Shift:=xlDown NEXT

OKERAUMI
質問者

お礼

ご回答頂き有難うございます。 変数(複写数)の値計算を変更する必要がありましたが、FOR TO を使う事でテキストボックスの複製ができました。 ただ複製する回数が100件を超える為、時間が掛かり過ぎるのが難点でしたので、今回はテキストボックスを使用しない方向で工夫しようかと思います。 しかし、やはり2003と2007では仕様が違うのですね。ご回答頂けた事でその事が理解できたので、今後のマクロ作成で下手に悩まずに済みそうです。 有難うございました。

関連するQ&A