Excel (VBA)

Excel VBAに関するフォーラムです。
  • 解決済みのトピックにはコメントできません。
このトピックは解決済みです。
質問

 
(Windows 11 Pro : Microsoft 365)
入力値から所定セル値分の文字入力と印刷について
投稿日時: 25/07/16 10:12:09
投稿者: えっくん

皆さん よろしくお願いします。
下記リンク先の情報を元に下記のコードで運用しています。
Sub NumberPrint()
Dim idx As Integer
Dim frmPage, toPage
  frmPage = Application.InputBox("連番を挿入して印刷します" & Chr(13) _
          & "開始番号「数字のみ」を入力してください", Type:=1)
  toPage = Application.InputBox("終了番号を入力してください", Type:=1)
  If frmPage > 0 And toPage >= frmPage Then
    For idx = frmPage To toPage
      Range("E12").Value = idx
      ActiveSheet.PrintOut
    Next idx
  Else
    MsgBox "開始番号、終了番号が不適切です。印刷は行いません"
  End If
 
この度、開始番号「数字のみ」を入力(例12)するとその番号から、所定結合セル(BC17:BE18)の値(例3)まで
E12セルに数字を12と入力して印刷、数字を13と入力して印刷、数字を14と入力して印刷
させたいと考えています。
終了番号を入力させずにセル値を参照させて運用したいです。
toPageにfrmPageの入力値12+ "BC17:BE18"の値3を足せば同じことだと思い、
  toPage = Application.InputBox("終了番号を入力してください", Type:=1)を
  toPage = frmPage + "BC17:BE18"
としましたが、型が一致しないとメッセージが出ます。
どのように記述すれば用のでしょうか。
 
ご教示お願いいたします。

回答
投稿日時: 25/07/16 10:42:12
投稿者: simple

数値と文字列を加えようとしているからでしょう。
結合したセルであれば、最初のセルに値が入っているので、そのセルだけを指定します。
トライして下さい。

投稿日時: 25/07/16 10:43:46
投稿者: えっくん

すみません 説明が一部間違っていました。
入力(例12)するとその番号から、所定結合セル(BC17:BE18)の値(例3)まで作業すると
構文間違っていますが、正しく修正できたとして
  toPage = frmPage + "BC17:BE18" では12から15まで印刷してしまいますね。
BC17:BE18セル値から-1する必要がありますね。
 

投稿日時: 25/07/16 10:52:47
投稿者: えっくん

simpleさん 情報ありがとうございます。
 
"BC17:BE18"セルの書式を標準から数値に設定
toPage = frmPage + "BC17"
としましたが同じように
実行時エラー13の型が一致せず のメッセージが出てきてしまいます。

投稿日時: 25/07/16 11:01:21
投稿者: えっくん

すみません。
 
"BC17"セル値を-1した"BG18"セルを作成し、
  toPage = frmPage + Range("BG18")
とすることで所望の動きができたようです。
もう少し動作確認します。

投稿日時: 25/07/17 08:46:28
投稿者: えっくん

無事 正常に動作しているようです。解決済みとします。
 
ありがとうございました。