[[20031028161950]] 『実行時エラー424オブジェクトが必要です』(じゃぽね) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『実行時エラー424オブジェクトが必要です』(じゃぽね)

VBAマクロ

 すっかりお世話になっております。B6に別シートのセルを串刺ししたく
 それをInputBoxを使って入力させたくて
 以下のようなマクロをやってみたのですが
 実行時エラー424オブジェクトが必要ですとなりました。
 根本的にまったく間違っているのかもしれませんが、ご教授ください。

 Sub sell()

 Dim c As Range

 Range("B6").Select
 Set c = Application.InputBox(Prompt:="シート", Type:=8)
 ActiveCell.FormulaR1C1 = "c"

 End Sub


 Sub sell()

 Dim c As String

 Range("B6").Select

 c = Application.InputBox(Prompt:="シート", Type:=0)
 ActiveCell.Formula = c

 End Sub

 インプットボックスのTypeを0にして数式にすると大丈夫のようです (りな)


 串刺ししたいというところから考えるに、間接的にセルを参照したいという
 ことですよね。
 オブジェクトが必要だといってるので、cはObjectで宣言してあげてください。

 あと、"c"はダメです。
 これではcは文字列になってしまいます。

 Sheet3のA1に123と入っていて、アクティブシートのB6に値を表示したいなら
 InputBoxには Sheet3!A1 と入力です。
 (ramrun)休憩〜

 Sub sell()

 Dim c As Object

 Range("B6").Select
 Set c = Application.InputBox(Prompt:="シート", Type:=8)
 ActiveCell.FormulaR1C1 = c

 End Sub


 >オブジェクトが必要だといってるので、cはObjectで宣言してあげてください。
 固有オブジェクト型で問題ないと思いますよ。
 値を表示なら、"c" を c にするだけでいいのではないでしょうか (りな)

  早速ありがとうございます。ひとつひとつ勉強になります。至らずで恐縮です。
 ところでわたくし全く思い違いをしていたようでもう2点ほどお伺い
 してもよろしいでしょうか。結果としてRange("B6").Selectに設定
 したいのが、='1月'!H8という数式なのです。InputBoxメソッド
 だとワークシートを直接クリックして入力ボックスにセル参照できる
 と読んだものですから、それで数式が入力されるものと思ってしまい
 ました。お知恵をお願いいたします。(じゃぽね) 

 >Range("B6").Selectに設定したいのが、='1月'!H8という数式なのです。
 わたしの作ったマクロでできませんか? (りな)


  で できました〜。すいません。Stringのコピー漏れでした。
 ありがとうございます。(じゃぽね)

 これは(汗)。 単に私が未熟なだけでしたね。

 というか、これ2年ぐらい前に同じ間違いをしたのを思い出しました。
 その当時も今回も、Refeditを使わないとドラッグでセル参照できないと
 思ってたんですよね。

 そしてその当時も同じようにInputBoxの使い方を思い知らされて、
 InputBoxってすげぇなぁ〜と感動したのもつかの間、
 もう忘れてしまっていたようです(汗)。

 Range、Objectも単なるアフォの発言でつな。

 (おいぼれramrun)捨てるカミあれば拾うカミあり

コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.