• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:VBAにて計算式をセルへ代入できなくて困っています)

VBAでセルへ計算式を代入できないエラーに困っています

このQ&Aのポイント
  • VBAで計算式を変数に代入し、特定のセルに入力すると実行時エラーが発生し、マクロが実行できません。
  • 解決方法として、セルへの値の代入方法や変数の設定方法を見直す必要があります。
  • また、エラーメッセージによると、エラー1004が発生しています。

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

  • ベストアンサー
回答No.5

> セルに直接入力すると =("123456あいうえお ",1)" とこんな感じに Excelに何か計算をさせたいというわけではなくて、セルに「=("123456あいうえお ",1)」と表示させたいということですか? それであれば、セルの表示形式として「文字列」を指定するか、先頭に文字列データであることを示す「'」を加えます。 VBAで表示形式を文字列にするには、 .NumberFormatLocal="@" でいけるはずです。

Yuki741
質問者

お礼

意図する事ができ非常に助かりましたました。 期限もありかなり焦っていたため一部マクロのミスも同時に見つかり うまく動いてくれました。有難うございます。

その他の回答 (5)

回答No.6

>実際にDebug.Print QRdata >イミディエイト・ウィンドウに出力された変数「QRdata」の結果を >貼り付けるということもしてみました。 いや、どこにも貼りついていませんよ。 あなたが確認するということではありません。 回答はよく読みましょう。 あなたは質問者なのですから、回答者の我々にわかるように 「ここに」貼りつけてください。 我々に情報を提供しなければ回答しようがないじゃないですか。

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

多分(セル).Formula=の右辺の式の問題だと思うが、 "=("& Chr(34) & コードナンバー & 品名1行 & Chr(34) & ",1)" はMsgboxで表示すると、どんな文字列になるか、エラーが出たら確認するのが筋でしょう。 「コードナンバー」や「品名1行」は変数名だと思うが、値はちゃんとセットされて取れていますか。 そんなこと(その実情と確認したかどうか)も書かないでエラーの質問にならない。もっと粘り強く、自分であれこれ考えるとか試行すべきだ。

回答No.3

こんばんは。 Cells(3, 6).Value = QRdata というコードの直前に Debug.Print QRdata と入れ、イミディエイト・ウィンドウに出力された変数「QRdata」の結果を 正確にここに貼りつけてください。

Yuki741
質問者

補足

ご回答ありがとう御座いました。 実際にDebug.Print QRdata イミディエイト・ウィンドウに出力された変数「QRdata」の結果を 貼り付けるということもしてみました。 変数(QRdata)の内容は意図する内容で 単純に =(" & Chr(34) & コードナンバー & 品名1行 & Chr(34) & ",1) をセルに代入するだけと思っていたのですが、ダブルクォーテーションや式の 取り扱いに問題があるのではと思うのですが 文字の配列や,Formula.など他にもあるのですが気がついたことや調べたことはいろいろ試みたのですが行き詰まってしまいました。 実際 コードナンバーには商品のコードとして例えば123456 品名には商品名 あいうえお などと入ります。 セルに直接入力すると =("123456あいうえお ",1)" とこんな感じに ただ商品名や商品コードは変数となるため 一部のダブルクォーテーションを  Chr(34) にすることにより一時的に文字とすることによって Cells(3, 6).Value = "=("123456あいうえお",1)" セルに直接入力することは出来ても、マクロでは・・・・

  • end-u
  • ベストアンサー率79% (496/625)
回答No.2

仮に Range("A1").Formula = "=," でも同じ結果です。 手動で =, などと入れても同じです。 数式文字列として入力しようとしてる『QRdata』が数式として正しくない為のエラーです。 Debug.Print QRdata などで確認して 変数『コードナンバー』『品名1行』の中身をチェックしてください。

回答No.1

ValueじゃなくてFormulaに設定したらどうですか?