- ベストアンサー
VBAでセルへ計算式を代入できないエラーに困っています
- VBAで計算式を変数に代入し、特定のセルに入力すると実行時エラーが発生し、マクロが実行できません。
- 解決方法として、セルへの値の代入方法や変数の設定方法を見直す必要があります。
- また、エラーメッセージによると、エラー1004が発生しています。
- みんなの回答 (6)
- 専門家の回答
質問者が選んだベストアンサー
> セルに直接入力すると =("123456あいうえお ",1)" とこんな感じに Excelに何か計算をさせたいというわけではなくて、セルに「=("123456あいうえお ",1)」と表示させたいということですか? それであれば、セルの表示形式として「文字列」を指定するか、先頭に文字列データであることを示す「'」を加えます。 VBAで表示形式を文字列にするには、 .NumberFormatLocal="@" でいけるはずです。
その他の回答 (5)
- ichhabehunger
- ベストアンサー率55% (27/49)
>実際にDebug.Print QRdata >イミディエイト・ウィンドウに出力された変数「QRdata」の結果を >貼り付けるということもしてみました。 いや、どこにも貼りついていませんよ。 あなたが確認するということではありません。 回答はよく読みましょう。 あなたは質問者なのですから、回答者の我々にわかるように 「ここに」貼りつけてください。 我々に情報を提供しなければ回答しようがないじゃないですか。
- imogasi
- ベストアンサー率27% (4737/17069)
多分(セル).Formula=の右辺の式の問題だと思うが、 "=("& Chr(34) & コードナンバー & 品名1行 & Chr(34) & ",1)" はMsgboxで表示すると、どんな文字列になるか、エラーが出たら確認するのが筋でしょう。 「コードナンバー」や「品名1行」は変数名だと思うが、値はちゃんとセットされて取れていますか。 そんなこと(その実情と確認したかどうか)も書かないでエラーの質問にならない。もっと粘り強く、自分であれこれ考えるとか試行すべきだ。
- ichhabehunger
- ベストアンサー率55% (27/49)
こんばんは。 Cells(3, 6).Value = QRdata というコードの直前に Debug.Print QRdata と入れ、イミディエイト・ウィンドウに出力された変数「QRdata」の結果を 正確にここに貼りつけてください。
補足
ご回答ありがとう御座いました。 実際に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)
仮に Range("A1").Formula = "=," でも同じ結果です。 手動で =, などと入れても同じです。 数式文字列として入力しようとしてる『QRdata』が数式として正しくない為のエラーです。 Debug.Print QRdata などで確認して 変数『コードナンバー』『品名1行』の中身をチェックしてください。
- m-take0220
- ベストアンサー率61% (480/785)
ValueじゃなくてFormulaに設定したらどうですか?
お礼
意図する事ができ非常に助かりましたました。 期限もありかなり焦っていたため一部マクロのミスも同時に見つかり うまく動いてくれました。有難うございます。