• 締切済み

エクセル マクロについて

Sub Macro1() Set in1 = Application.InputBox(prompt:="入力範囲", Type:=8) i = in1.Offset(1, 0).Value Cells(1, 1).Value = i End Sub とするとエラーがでないのですが、 Sub Macro1() Set in1 = Application.InputBox(prompt:="入力範囲", Type:=8) i = in1.Offset(1, 0).Value Cells(1, 1).Value = i + 1 End Sub とするとエラーがでます。 i+1を表示するには、どう修正すればよいでしょうか。

みんなの回答

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.3

後半の Sub Macro1() Set in1 = Application.InputBox(prompt:="入力範囲", Type:=8) i = in1.Offset(1, 0).Value Cells(1, 1).Value = i + 1 End Sub をコピー貼り付けしてやってみると(わたしがやった1例では)エラーは出ません。 ただ選択した (1)セルの場所 (2)複数セルの選択 にもよると思われる 一番質問者に欠けているのは、関係(参照)データの有り様に よってエラーが出る場合があるという認識が足りないことだと思う。 そのためにもエラーコードなどを頼りに考えるのだ。 質問にも書くこと 直ぐ質問しないで考えて試行すること。「見ればわかる」という程度の原因ではないか。

  • mu2011
  • ベストアンサー率38% (1910/4994)
回答No.2

>+1を表示するには、どう修正すればよいでしょうか  ⇒エラーは、文字+数値になっているからだ。   以下の点も含み、事前にどうするかを決めていない事が本当の原因です。    ・入力キャンセル時    ・セル範囲指定での入力時    ・入力先セルが文字列(今回のエラー)   この対応については、ご質問者が決めなければ誰も決められませんので   InputBoxでweb検索して色々のサンプル等を参考にご検討下さい。   

  • kokorone
  • ベストアンサー率38% (417/1093)
回答No.1

>エラーが出ます って、どんなエラーですか? このような場合、エラーの内容も提示してくださいね。 Cells(1, 1).Value =Val( i) + 1 としてください。 i は、文字型になっているはずですから。 数字に変換する必要があります。

mososo
質問者

補足

回答ありがとうございます。 >エラーの内容も提示してくださいね。 「実行時エラー13:型が一致しません」とでました。 Cells(1, 1).Value =Val( i) + 1 としましたが、同様に「実行時エラー13:型が一致しません」となります。