• ベストアンサー

VBA、マウスでドラッグした範囲を1セルづつ参照するには?

VBAで例えば、B1からG5までをドラッグ選択し、実行ボタンを押すと選択した範囲内のセルをひとつずつ順に参照していくようなプログラムを組むにはにはどうすれば良いのでしょうか?(B1,B2,B3,B4,B5,C1,C2,・・・・といった感じで) たぶん、そんなに難しいものではないと思うのですが、自力では限界です。ご助言お願いします。 また、初心者(勉強始めて3日)が勉強のにおすすめのサイトをご存知でしたら教えていただければ幸いです。

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

  • ベストアンサー
  • merlionXX
  • ベストアンサー率48% (1930/4007)
回答No.1

Sub test01() For Each c In Selection MsgBox c.Address & "=" & c.Value Next End Sub って感じでしょうか。 サイトはたくさんありますよ。 http://excelvba.pc-users.net/ http://www.eurus.dti.ne.jp/~yoneyama/Excel/vba/index.html http://www.sigoto.co.jp/excel/

LAMYPARKER
質問者

お礼

回答ありがとうございます。 サイトhもたくさん教えていただきありがとうございます。

LAMYPARKER
質問者

補足

早速の回答ありがとうございます。 続けての質問で申し訳ないのですが、同じ縦×横セル数の範囲を二箇所ドラッグで選択し、その範囲内を1マスずつてらし合わせていくにはどうすれば良いのでしょうか。 (B1~D3をドラッグ選択、続いてH7~J9を選択。実行ボタンを押すとB1とH7,B2とH8,B3とH9,C1とI7を比較するといった感じに) 比較する部分はifを使おうと思っているのですが、そこまでの検討が付きません、selectionはひとつしか使えないし、??? ご助言いただければ幸いです。

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

関連するQ&A

  • VBA、二箇所をドラッグ選択し、範囲内を1セルずつ比較するには?

    VBAにて、同じ縦×横セル数の範囲を二箇所ドラッグで選択し、その範囲内を1マスずつてらし合わせていくにはどうすれば良いのでしょうか。 (例えば、B1~D3をドラッグ選択、続いてH7~J9を選択。実行ボタンを押すとB1とH7,B2とH8,B3とH9,C1とI7・・・・をと順次比較するといった感じに) 比較する部分はifを使い、二つの値が=であるかないかで判断しようと思っているのですが(ここは自力でできます)、そこまでの検討が付きません、selectionはひとつしか使えないし、??? ご助言いただければ幸いです。

  • openofficeで絶対参照セルをドラッグ移動するとコロンがついてしまいます

    OpenOffice3.0をMacで使っています。(Windows版でもLinux版でも違いはないと思います。) あるセルで以下のような数式を入れているとします。 = $B$5 * 2 この時、参照先をB5ではなくC5に変えたいとします。式の入っているセルをダブルクリックすると式内で使っているB5のセルが色付きでハイライトされるので、それをドラッグして移動することができるのですが、すると、 = $C$5 * 2 ではなく、以下のようになぜかコロン付きの参照になってしまいます。 =$C$5:C5 * 2 これを":C5"なしでドラッグ移動することはできないでしょうか? OpenOffice1.xのときはこういうことはなかったと記憶しているのですが。 またちなみに"$C$5:C5"というのは何を意味するのでしょうか。 よろしくお願いいたします。

  • 複数選択状態のセルを可変範囲分横にドラッグするVBA

    エクセル2003のVBAの記述について教えてください。 <状態>2行目にB3から値が入っている。範囲は可変。 <作業>2つずつの合計を3行目に算出する。 <VBAで記述したい内容> 1 C3に「=B2+C2」と入力する 2 B3とC3を選択する 3 2の状態で2行目の値が入っている最後の列のセルまでドラッグする ----- これをVBAで記述するにあたって以前教えていただいたこと(http://questionbox.jp.msn.com/qa4286686.html)を参考に自分なりに考えて作成したのですが、やっぱり3の部分でエラーになってしまいます。(平たく言うと横方向へのドラッグの記述方法が判らない) どこか基本的な部分がトンチンカンなのは判りますが、色々検索&試してもどこがどうトンチンカンなのか判りません。 Range("C3").Select ActiveCell.FormulaR1C1 = "=R[-1]C[-1]+R[-1]C" Range("B3:C3").Select Selection.AutoFill Destination:=Range("B3:3" & Cells(2, Columns.Count).End(xlToLeft).Column), Type:=xlFillDefault 上手く動くようご指摘、よろしくお願いします。

  • VBA、セルの選択範囲について

    下記のような表を用意し、   A   B  C  D  E 1    1月 2月 3月 合計 2 Aさん 1  2  3  6 3 Bさん 1  2  3  6 4 Cさん 1  2  3  6 5 合 計 3  6  9  18 セルの範囲選択を指定し別シートの任意のセルへコピーをVBAで行いたいのですが、 Aさん、Bさん、Cさんという範囲を選択する為に、合計という文字は含みたくないので、 Range("A2").Select Range(Selection, Selection.End(xlDown).Offset(-1)).Select と記載し、これは出来ました。 同様に、 1月、2月、3月という範囲も同様にxlToRightを使用し選択出来ました。 Range("B1").Select Range(Selection.End(xlToRight).Offset(, -1), Selection).Select しかし、B2:D4の範囲の指定の仕方がわかりませんでした。 データのレコード数は一定ではないのでB2:D4というように範囲を指定する事は出来ません。 そのときに応じてDさん、Eさんと増えたり、4月、5月と増えたりするので。 何か方法があればご指導お願いします。

  • セルを参照させる関数について

    C列には関数で返ってきている値が入っています。(たとえば単純にC1のセルには=SUM(A1:B1)と入っている)そのままC1を横にドラッグしてコピーするとD1のセルには単純に=SUM(B1:C1)となりますが、見に行くセルをC2に、E1のセルの参照するセルはC3を。。。という風に参照させるにはどんな関数を使用すればいいのでしょうか? (単純にD1のセルに=C2と設定はしたくないのが前提です)

  • 【EXCEL VBA】定数で与えられたセルを使いセル範囲を選択する方法

    【EXCEL VBA】定数で与えられたセルを使いセル範囲を選択する方法 VBA初心者です。よろしくお願いします。 実行したい処理は決めたのですが、Excelのレイアウトが未定です。 そこで、レイアウト変更を考慮し、処理対象セルを定数で与えています。 例えば、 Range("B2:B8").Select は、 Const IchI As String = "B2" Range(Range(IchI), Range(IchI).Offset(6, 0)).Select ・・・(1) としています。(これ自体おかしいのかもしれません。。。) しかし複数のセル範囲 例えば、 Range("B2:B8,F2:F8").Select の場合、どうしたらいいのかわかりません。 (1)自体おかしいのかもしれません。   良い方法があれば教えてください。 よろしくお願いします。

  • エクセル ソルバー セル参照をVBAで

    エクセル ソルバーのセル参照をVBAコードで変更しようとしていますが,複数のセル参照がうまくいきません. まず,マクロの記録でセルc3の値を2にするようにC2とC4の値を変更するというコードを記録させました. SolverOk SetCell:="$C$3", MaxMinVal:=2, ValueOf:="6",ByChange:="$C$2,$C$4" 次にセル参照をコードで操作するために"$C$3"の部分はcells(3,3)と置き換えてもうまく起動したのですが,"$C$2,$C$4"の部分は,cells(2,3),cells(4,3)と置き換えると, コード内でエラーメッセージ「コンパイルエラー,修正候補,名前付き引数」とでます.この場合どう修正すればいいのでしょうか. コードでセル参照を操作しようという動機は,例えば「アクティブセルから下のセルを順に3つ参照するよう」など,場合に応じてマクロを指示するためですが,ためしに試みた時点で上記内容でつまずいてしまいました. よろしくご教示お願いします.

  • エクセルVBAで、選択セルを常にC行にする。

    エクセルVBAで、選択セルを常にC行にする。 例:ボタンをクリックすれば、選択しているセルがN25ならC25になり、N7ならC7にしたいのです。 選択セル範囲がB2:N12ならば、一番上を有効として、C2のみを選択範囲としてほしいのです。 VBAで記述するならどのようになるか。ご教示ください。

  • 複数選択状態のセルを可変範囲よりひとつずらしてドラッグするVBA

    エクセル(2007以前です)のVBAの記述について教えてください。 <状態> A列に、A2から始まってデータが沢山ある。データ数はその都度変わる。 <作業> B列において、A列のデータを1行ずらして2つおきに参照する <VBAで記述したい内容> 1 B5に「=A4」と入力 2 B3:B5を選択 3 2の状態でA列のデータが入っている一つ下の行までドラッグ この内、1と2は判ります。3の記述を教えてください。 よろしくお願いします。

  • VBA 範囲選択について

    複数のセルを選択してマクロを実行し、範囲選択の個数をMsgboxで表示したいです 例えばA1:B5、C6、D2:E3、を同時に範囲選択していたら「3個」のように表示 分かる方がいらっしゃるのであれば、回答をよろしくお願いします

このQ&Aのポイント
  • FMVF56MDで起動可能なデバイスが見つからず、エラーコードE104-1-1001が表示される
  • 富士通FMVのFMVF56MDで起動する際、エラーコードE104-1-1001が表示される問題が発生しています。
  • 起動時にFMVF56MDで利用可能なデバイスが見つからず、エラーコードE104-1-1001が表示されるというトラブルが報告されています。
回答を見る

専門家に質問してみよう