• ベストアンサー

ExcelVBAでセル選択範囲ウィンドウを使いたい。

こんにちは。 ExcelVBAでセル選択範囲ウィンドウを使いたいと思っています。 例として: SUM関数を追加して、セル範囲をシートより取得する時に、 現れるウィンドウです。(「関数の引数」と表示されています。) API・関連Hp・書籍・サンプルなど情報頂ければ有り難いと思っています。

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

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

実行時にマウスで範囲を指定させたいって事でしょうか? 用途的には InputBox で代用するか UserForm + RefEdit で自作しても出来ますが、、、 API等は分かりません。 Sub Test() Dim r As Range  On Error Resume Next  Set r = Application.InputBox("マウスで指定して", "セル選択", Type:=8)  MsgBox r.Address End Sub

i_september
質問者

お礼

ご回答有難う御座います。 希望のご回答でした。 InputBox(,,Type:=8) RefEdit 両方とも使わせて頂きます。

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

その他の回答 (2)

  • KenKen_SP
  • ベストアンサー率62% (785/1258)
回答No.3

> API・関連Hp・書籍・サンプルなど情報頂ければ有り難いと思っています。 RefEdit に関しての参考情報です。 RefEdit にはいつも苦労させられます。バグだらけなんです。 なるべく InputBox メソッドを使いますが、どうしても RefEdit を 使わざるを得ない場合は...そらもう苦労してますよ(´Д⊂ 特に RefEdit のあるフォームをうっかり vbModeless にすると危険です。

参考URL:
http://www.h3.dion.ne.jp/~sakatsu/Excel_Tips08.htm#S2
全文を見る
すると、全ての回答が全文表示されます。
  • hana-hana3
  • ベストアンサー率31% (4940/15541)
回答No.1

ヘルプから 「組み込みダイアログ ボックス引数一覧」 Application.Dialogs(xlDialogFunctionWizard).Show http://www.excel7.com/personal/vba_shiryou1.htm

i_september
質問者

お礼

ご回答有難う御座います。 Application.Dialogsは、以前に見た記憶がありますが、 無かったようでした。

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

関連するQ&A

  • ExcelVBAで範囲のセルを別のシートのセルに代入する方法はありますか

    ExcelVBAで範囲のセルを別のシートのセルに代入する方法はありませんか。 範囲でなく、一つのセルだけなら代入できるのですが、範囲にすると代入先が空白になってしまいます。 例えばSheet2のC1~C3をSheet1のB1~B3に代入したいとき Sheets("Sheet1").Range("B1:B3") = Sheets("Sheet2").Range("C1:C3") この記述だとSheet1のB1~B2までが空白になってしまいます。 アクティブシートが変わると処理がおかしくなるのでコピーペーストは使いにくいです。 よろしくお願いします。

  • 関数内のセルの範囲を他のセルから取得する方法

    教えてください。 関数内のセル名を他のセルから取得することはできるのでしょうか? 例えば、B列の合計を求めるSUM関数であれば A1セルに関数を記述 =SUM($B$x:$B$y) A2セルに範囲(上記式のx)を指定  1 A3セルに範囲(上記式のy)を指定  10 これにより、B列のB1~B10の合計を求める。 といった感じです。 ※実際に使用したい関数は、SUMではありません。 よろしくお願いします。

  • エクセルで指定するセルの範囲を変えたい

    データ数:5 データ:1、4、7、8、5、 シートに書いたときに、たとえば、 最大値を取得する場合 =max(B1:B5)になるのですが、 データ数が変わったときにも対応できるように なる一般的な方法はありますか? つまり、データの右側にデータを追加したら、自動的に データ数と最大値を取得する関数の引数の範囲が 増加して、適切な最大値を取得できることです。 以上、よろしくお願いします。

  • ExcelVBAで複数範囲した色セルと、条件で別セルも同色になるようにしたい

    ▼Excel2003を利用でSheet1とSheet2を使っての質問です▼ 下記に簡単に事例を記載いたします。(※実際にはデータが沢山あります) ★Sheet1にはA1~G3範囲横7列縦3行の表があり、表中にはA1、B1、C1、D1が空白でその次からは1~17までの数字が横列に沿って順次入っています。G3セルが最後の数字の17となっています。 横7列に入っている数字はA1、A2、A3、A4空白のセル以外は列毎にセル背景色が異なり全部で7色入っています。 ★次にSheet2に新たにA1~D4範囲内に表を作り、順次セルに数字値を入力し、例えばSheet2のA1セルが1だったら、そのSheet2のA1セル背景色をSheet1の表中の1が入力されているセルと同じ背景色にしたいです。 以上の課題をExcelVBAを使って解決したいのですがご存じの方いらっしゃいましたらVBAでどうプログラミング表現すれば良いか教えていただければ幸いです。 ちなみに私自身はExcelVBAを一度も使ったことがなく初心者です。 恐縮ながらもよろしくお願い申し上げます。

  • 合計の範囲選択

    Excel2000です。シート1のB10とシート2のC10に小計があります 総計をシート1のD1セルにSUM関数で出す時、シート1のB10を選択してから シート2のC10を選択するには、どうしたら良いですか。

  • Excelのセル範囲コピー

    ExcelVBAでセル範囲を指定して別のセル範囲にコピーします。 このとき、コピー元が空白のセルはコピーしない、あるいはコピー先のセルに関数が定義されていればコピーしないようにする方法はあるでしょうか。 もちろん、1セルごと処理すればできますが、スピードアップの為、範囲指定してまとめてやりたいのです。 バージョンは2003以降です。

  • Excelで、セル範囲(自分の1行下:空白セルの上)、を求めることできますか?

    Excelで、セル範囲(自分の1行下:空白セルの上)、を求めることできますか? A列 ────── 2004年   3 ← =sum(A2:A3) 2004/11  1 2004/12  2        ← 空行 2005年  5 ← =sum(A6:A8) 2005/1  3 2005/2  2 2005/3  0        ← 空行 sum()の引数(合計範囲)を求めることできますか? 手作業で"A6:A8"等入力していかないとできないのでしょうか?

  • エクセル VBA セル範囲を指定

    functionプロシージャを作ろうとしてます。いわゆるユーザ定義関数です。 エクセルの関数でSUMが用意されており、SUM(セル範囲)のように書けば合計を返します。 同じようにセル範囲の指定を受けて計算結果を返すfunctionを作りたいのです。 function example(セル範囲 As double,・・・) As double 任意の範囲を指定して、その値を使って計算したいのです。 ・セル範囲の書き方というか、フォーマットの書き方 ・プロシージャ内で計算に使うために配列に読み込む方法

  • エクセルの他シートのセルの値をセル範囲で指定

    エクセルの他シートのセルの値をセル範囲で指定 お願いします。 sheet1のA1からA3まで1,2,3と入力されていてセルB1にA1:A3と入力されています。 sheet2のA1にsum(sheet1!A1:A3)と入れると6になるのですけれど、 A2にSUM(INDIRECT(sheet1!(B1))と入れると0になってしまいます。 これをどのように解決したらいいですか? よろしくお願いします。

  • Excelのグラフ範囲をセル内容で指定したい

    皆さんに知恵をお貸しいただきたく思います。 同じようなグラフをグラフ範囲を変えて複数作成するために、以下のようなことを考えています。 ・sheet1のA1セルにグラフ対象範囲を格納し、 例)[別のbook]sheet2!A1:E50 ・グラフの範囲にsheet1のセル内容を範囲として設定する ということをしたいのですが、うまくいきません。 indirect関数を使ってみたのですが、グラフのプロパティの範囲部分にはindirect関数は書けないようでした。 また、VBAでグラフ範囲を修正するマクロを書こうとしましたが、 SetSourceData Source:= Sheet("sheet1").range("A1") と書くと、当然ながらsheet1!A1そのものを範囲として認識してしまいます。 取得した値をrangeに変換する方法を知りたいです。 どうかよろしくお願いします。