• ベストアンサー

【Excel VBA】数式の設定

Excel2003を使用しています。 選択したセルの範囲に、  =ROUNDDOWN(RC[-1]*0.05/1.05,0) という数式が入力されるようにしたいのですが、ひとつのセル(ActiveCell)に対してだと、うまくいくのですが、選択範囲(Selection)にすると、うまくいきません。(実行時エラー'438' と出ていたような気がします) 選択範囲は、?行1列で、その都度指定してマクロを実行すると、上記の数式が入力されるようにしたいのですが、どのようにコードを記述したらよいのでしょうか。 よろしくお願いします。

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

  • ベストアンサー
  • zap35
  • ベストアンサー率44% (1383/3079)
回答No.2

Error(438)は >オブジェクトは、このプロパティまたはメソッドをサポートしていません です。もしかしてセル以外のもの(シェイプなど)を選択した状態でマクロを実行しなかったでしょうか? 複数のセルを選択した場合でも、以下でいけると思います Sub Macro2() If TypeName(Selection) = "Range" Then   Selection.FormulaR1C1 = "=ROUNDDOWN(RC[-1]*0.05/1.05,0)" End If End Sub

rx-z5815
質問者

お礼

回答ありがとうございます。 >もしかしてセル以外のもの(シェイプなど)を選択した状態でマクロを実行しなかったでしょうか? 都度範囲指定するセルには、シェイプ(直線)がありますので、もしかしたら、マクロを実行する際に、セル以外のものも選択した状態だったのかもしれません。 問題が解決でき、助かりました。ありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (1)

  • papayuka
  • ベストアンサー率45% (1388/3066)
回答No.1

こう言う場合は上手く行かないコードを載せないと、何が悪いか解りません。 Sub Test()  If TypeName(Selection) <> "Range" Then Exit Sub  Selection = "=ROUNDDOWN(RC[-1]*0.05/1.05,0)" End Sub

rx-z5815
質問者

お礼

回答ありがとうございます。 教えていただいたコードで試したところ、うまくいきました。 ありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • SelectionとSelectについて?(エクセルVBA)

    任意に範囲選択したセルのうち数式が定義されているセルのみを選択するマクロについて教えてください。 次のようにコードを書いて Sub TEST() ' MsgBox Selection.Address Selection.SpecialCells(xlCellTypeFormulas).Select End Sub 任意の複数のセルに数式を定義します。(配置はばらばらでも構いません) あるセル範囲を選択して上のコードを実行すると、次のような動作になります。 数式を定義したセル(以降、数式セル)を1つ以上と、数式の定義に関わらず別の1つ以上を含むセル範囲を選択した場合は、希望通りに数式セルが選択されます。 しかし、数式セルを一つだけ選択してコードを実行すると、シート全体で数式セルが選択されてしまいます。 ヘルプをみると、Selectionには、セルを選択しているときは、Range オブジェクトが返されます。とあり、SpecialCellsには、オブジェクトを返すメソッドです。指定された条件を満たしているすべてのセル (Range オブジェクト) を返します。とあります。 素人的には、Selection プロパティで返されるオブジェクトの種類は、何を選択するかによって異なります。の部分で、返されるオブジェクトが一つのセルを選択した場合は、オブジェクトがシートになってしまっているからだと推測します。しかし、複数のセルを結合したセルに数式を定義した場合で、一つの数式結合セルを選択して、MsgBox Selection.Addressと表示させると、Selectionは、複数のセルからなるセル範囲を返している様なメッセージが表示されるのに、次の行では、同じくシート全体が選択されてしまいます。 回避する方法ってないのでしょうか?教えて頂けないでしょうか?宜しくお願い致します。 また、説明が悪くてすみません。

  • 【Excel VBA】データを集計する数式を入力するマクロ

    Excel2003を使用しています。   A列   B列   C列   D列   E列   F列 1      9/1                    20000 2      9/2              1000 3      9/10              5000 : : 10           9月計        ※1    ※2    11 12 13     10/1                   10000 14     10/10             2000 15     10/14                   4000 : : 20           10月計       ※3    ※4 上記のデータでいうと、 ※1(E10セル) =SUM(E1:E9) ※2(F10セル) =SUM(F1:F9) ※3(E20セル) =SUM(E13:E19) ※4(F20セル) =SUM(F13:F19) という内容の数式を入力するマクロを作成したく、数式を入力したいセルをアクティブにして、ボタン等に登録したマクロを実行すると数式が入力されるようにしたいと考えていますが、その際、集計範囲の最下行は、アクティブセルの1行上までになりますが、最上行をどのようにして取得すればよいかがわかりません。 (実際のデータは、もっと行数も入力されているデータ数も多いです) また、他にもこんな方法があるとか、こうしたほうが簡単とかあれば、教えていただけると勉強にもなりますので助かります。 うまく説明できなくて申し訳ありませんが、よろしくお願いします。

  • Excel2013 数式の範囲が選択されない

    Excel2013です 数式を入力したセルをダブルクリックしても 数式の範囲が選択されない 選択されない原因とExcel2010までと同じように範囲を選択する方法を 教えてください 画像左は、Excel2013 A5をダブルクリックしてもSUMの範囲のA2:A4が 選択されない右は、Excel2010 A5をダブルクリックするとSUMの範囲のA2:A4が 青い線で囲まれ選択される。

  • 【Excel VBA】ThisWorkbook モジュールのマクロ

    Excel2003を使用しています。 39枚のシートから成るBook1のThisWorkbook モジュールに、C列に“○月計”と入力されたら、その行のE列、F列、G列へ数式を入力するコードを書いています。 現在は、それぞれのシート(39枚のシートのうち3枚を除く36枚)のC列最終行から2行下のセルへ“○月計”と手入力していますが、マクロで“○月計”と入力されるようにすれば、ThisWorkbook モジュールに書いているコードも実行されて、数式の入力までマクロで処理できるのかな?と思い、試しに、36枚それぞれシートのC列最終行から2行下のセルへ“○月計”と入力されるようコードを書いてみました。 …が、そうではないのか、それぞれのシートのC列最終行から2行下のセルへ“○月計”と入力されるものの、E列、F列、G列へ数式は入力されません。 せっかくなので、できることなら数式の入力までマクロで処理したいのですが、どのようにしたらThisWorkbook モジュールに書いているコードまで実行されるのでしょうか? よろしくお願いします。

  • 【Excel】範囲指定のコードの書き方

    Excel2003を使用しています。 あるマクロに下記の内容を付け加えたいのですが… ActiveCell.Offset(-2, 11)に入力されている数式をActiveCell.Offset(7, 11)からActiveCell.Offset(39, 11)の範囲にコピーしたいのですが、コピー先の範囲をどのように書いたらよいのかわかりません。 現在使用中のマクロに付け加えたいので、あえてActiveCellからどの位置にあるという形で書かせていただきましたが、わかりづらいようでしたら、補足いたしますので、よろしくお願いします。

  • Excel2003でのVBA

    WindowsXPでExcel2003を使っています。 Excelにある表をマクロを使って編集したいと思ったのですが、セルの選択の設定で教えてほしい事があります。 まず、横A列~F列、縦1行~6行までの表があります。 A1セルは、空白。 B1セル~F1セルには、1~5の数字が入っています。(見出しなので全て入ってます。) A2セル~A6セルには、a~eのアルファベットが入っています。(見出しなので全て入ってます。) 表の中のデータは、ところどころにしか入っていなくて、全て埋まっていません。 また、横A列~F列というのは固定なのですが、縦1行~6行までという行数は変動します。 この表で、A2セルからF6セルまでを選択したいのですが、行が変動するのでA6とかF6とかでは指定できません。 Range("A2").Select Selection.End(xlDown).Select これで、A2セル~一番下の行(ここではA6セル)まで選択した後、F列まで(列の数は固定です。)選択するにはどうしたらよいのでしょうか? 右下のセルは、空白なので困っています。 Range(Selection, Selection.Next).Select こんなものを考えましたが、これでは一つ右隣しか選択できません。 これを少しいじればいいのではないかと思うのですが、全然違う方法でもかまいません。 どなたか教えていただけないでしょうか? 宜しくお願いします。

  • Excel2003の数式設定について教えて下さい。

    Excel2003の数式設定について教えて下さい。 【C1セル】には 数式「=IF(A1="","",A1)」 【D1セル】には 数式「=IF(B1="","",B1)」 【E1セル】には 数式「=IF(AND(ISBLANK(C1),ISBLANK(D1)),"",(IF((C1+D1)=0,"---",C1+D1)))」 と設定した状態で、 【A1セル】に 数値「100」と入力し、 【B1セル】に 数値「200」と入力した場合、 【E1セル】は 「300」と出力されますが、 【A1セル】、もしくは【B1セル】を 空欄にした場合、 【E1セル】は エラーとなり、「#VALUE」と出力されてしまいます。 小生としては、【C1セル】【D1セル】の両セルとも表示上は空欄の為、 ISBLANK関数でTRUEと判定し、【E1セル】は空欄になってほしいのですが、 【C1セル】や【D1セル】には数式が設定されている為、 ISBLANK関数でTRUEと判定されずに、「IF((C1+D1)=0」の演算でエラーとなっている様です。 小生が実現したいこと、 「【C1セル】と【D1セル】の数式の実行結果が空欄以外の時のみ、  【E1セル】の数式を実行する。」 の方法をご存知の方、教えて下さい。お願い致します。

  • Excel2007 VBAで数式がうまく入力が出来ません。

    Excel2007 VBAで数式がうまく入力が出来ません。 数式を、"=IF(AA7=0,"     ---",Z7/AA7)"     " "内には半角スペース4コ 半角マイナス3コ      と入力したいのですが、以下のように自動的に入力されてしまい、マクロ実行時に、エラーとなってしまい、ストップしてしまいます。 解消方法を教えて下さい。 VBEで入力しても、以下のように自動的に修正されてしまいます。   Range("AB7").Formula = "=IF(AA7=0," - --",Z7/AA7)"

  • VBA 表の1つ下のセルを選択する

    EXCEL2003のVBAを使っています。 オートフィルタで抽出させた表があります。 入力されているセルの、1つ下のセルを選択するにはどうしたら良いでしょうか。     A 1  あああ  2  あああ  5  あああ  1行目から19行目までの列の中で、"あああ"だけをオートフィルタで抽出している 10  あああ  14  あああ   16  あああ  20   ※ ←ここを選択したい。 Range("A65536").Select Selection.End(xlUp).Select ActiveCell.Offset(1, 0).Select これだとA17のセルが選択されてしまいます。 表全体の1つ下のセルを選択する方法はあるでしょうか?

  • Excel2007のVBAについて

    Excel2007のVBAについて Excel2007以前では「マクロの記録」を実行して罫線や図形の描写を行って、「記録終了」を行うと作業していたコードが記述され、それを加工したりして使っていましたが、Excel2007で同じように行ってもコードが記述されてませんでした。 セルの操作等はコードが記述されていました。 どこか、私の操作方法が間違っているのでしょうか。また2003のようにコードを記述させる方法が別途あるのでしょうか、よろしくお願いします。 関係ないとおもいますが、 「Excelのオプション」で「開発タブをリボンに表示する」はチェック入れてあります。 「マクロの設定」では「すべてのマクロを有効にする」にチェックしています。

このQ&Aのポイント
  • LIFBOOK AH53/B2を使用していて、Bluetoothとその他のデバイスにON/OFFスイッチがなくなり、使用できない状況になっています。富士通のQ&AにあるBluetoothのインストールを行いましたが、スイッチが反映されません。富士通FMVの対処方法はどのような作業が必要でしょうか。
  • Bluetooth機能が使えない状況になった場合、富士通FMVユーザーはどのような対処方法を取るべきでしょうか?LIFBOOK AH53/B2を使用していて、Bluetoothとその他のデバイスにON/OFFスイッチがなくなり、操作できない状況になった場合、富士通のQ&AにあるBluetoothのインストール方法を試してもスイッチが反映されないことがあります。富士通FMVのユーザーはどのような作業を行わなければならないのでしょうか。
  • LIFBOOK AH53/B2でBluetoothを使用できない状況になった場合、どのような対処方法がありますか?富士通のQ&AにあるBluetoothのインストール方法を試してもスイッチが反映されないことがあります。富士通FMVのユーザーはどのような作業を行わなければならないのでしょうか。Bluetooth機能が使えない場合、どのような設定を行うべきでしょうか。
回答を見る

専門家に質問してみよう