OKWAVEのAI「あい」が美容・健康の悩みに最適な回答をご提案!
-PR-
解決
済み

[Excel97]VBA:セルに入っている数式を別のシートのセルに文字列としてセットする

  • すぐに回答を!
  • 質問No.181491
  • 閲覧数925
  • ありがとう数2
  • 気になる数0
  • 回答数1
  • コメント数0

お礼率 62% (51/81)

「ExcelVBAマクロ500連発」という技術評論社の本(青のカバー)のNo.277に
「式を文字列として表示する」というサンプルマクロがあります。
「ワークシートのセルに入っている数式を、(同じシート内の)別のセルに文字列としてセットする」
ここのコードを参考にして、
「数式を、(同じブック内の別のシートの)セルに文字列としてセットする」コードを考えています。
以下のコードを作りましたが、実行すると最後から2行目の「.Formula」のところで

実行時エラー1004:'Range'メソッドは失敗しました。'_Global'オブジェクト

というエラーが出てきます。なぜでしょうか?
正しいコードの記述を教えて下さい。

(Sheet1のD3セルの計算式をSheet2のD10セルに文字列としてセット)
Option Explicit
Dim 調査セル As Variant
Dim 報告セル As Variant

Sub 式の抽出()
Worksheets("Sheet2").Select
調査セル = Worksheets("Sheet1").Cells(3, 4)
報告セル = "D10"

Range(報告セル).Value = ""
Range(報告セル).Value = "'" + Range(調査セル).Formula
End Sub
通報する
  • 回答数1
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

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

  • 回答No.1
レベル13

ベストアンサー率 46% (643/1383)

こんなややこしいことをせずとも、たった1行
Sub 式の抽出()
  Sheet2.Range("D10").Value = "'" & Sheet1.Range("D3").Formula
End Sub

って書けばいいですよ。


お書きになったVBAでの間違いは、文字列とオブジェクトを混同しているところにありますね。
これを正しく書き直すとすると、以下のようになります。

Option Explicit

'変数の宣言
Dim 調査セル As Range 'Rangeオブジェクト(セルの内容等にアクセスする為のオブジェクト)
Dim 報告セル As String '文字列

Sub 式の抽出()
 'Sheet2をアクティブにする
 Worksheets("Sheet2").Select
 
 '調査セルにはSheet1のD3のセルを割り当てる。
 '「調査セル」を通じて、このセルの文字列、式、色情報etcを取得できる。
 Set 調査セル = Worksheets("Sheet1").Cells(3, 4)
 
 '「報告セル」という文字列方変数に「D10」という文字列を代入する。
 報告セル = "D10"
 
 'アクティブなワークシート(Sheet2)の「D10」というセルの値に空文字列を代入する。
 Range(報告セル).Value = ""
 
 '調査セルのFormula(式の内容)属性を取得して、その値を代入する。
 Range(報告セル).Value = "'" + 調査セル.Formula
End Sub
お礼コメント
momoo

お礼率 62% (51/81)

いつも回答ありがとうございます。
ARCさんは以前にも答えていただいたことを覚えています。

さっそく試してみると、本当に1行で転記できてしまいました。
驚きました。こんな簡単な式でできることに。
ついでにある起動しているブックから他の起動しているブックへ転記できるかと思って、
Workbooks("転記先ブック").Worksheets("Sheet1").Range("D4").Value="'"&Sheet1.Range("D3").Formula
としてやってみたら、これも成功しました。
できちゃうと「なあんだ」ってことになっちゃいますね。

自分が作ったコードの方ですが、
調査セル=Worksheets("Sheet1").Cells(3,4)
というのは、「オブジェクトを指定している」ということなんですね。
それで、Range(調査セル).Formulaはまちがいだと言うことなんですね。
よくわかりました。
投稿日時 - 2001-12-08 22:57:55
-PR-
-PR-
このQ&Aで解決しましたか?
関連するQ&A
-PR-
-PR-
こんな書き方もあるよ!この情報は知ってる?あなたの知識を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-
-PR-
-PR-

特集


いま みんなが気になるQ&A

関連するQ&A

-PR-

ピックアップ

-PR-
ページ先頭へ