• ベストアンサー

VBA UsedRangeで選択範囲を取得したい

セルに aaa bbb ccc と入力し、vbaで Sub Macro() MsgBox ActiveSheet.UsedRange End Sub を実行すると、 型が一致しません。(Error 13) と言うエラーになります。 "$A$1:$D$3"と言うような値を取得したいのですが、どのようなVBAにすればいいのでしょうか? ご回答よろしくお願いします。

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

  • ベストアンサー
  • keithin
  • ベストアンサー率66% (5278/7940)
回答No.1

方法1) msgbox activesheet.usedrange.address とする 方法2) msgbox range("A1").currentregion.address とする 方法3) msgbox application.intersect(activesheet.usedrange, range("A:A")).address とする

e78wre
質問者

お礼

Address が必要なのですね!ありがとうございました。

関連するQ&A

  • VBAでの選択範囲内の削除方法。

    Excel2003でVBAを使っています。 まず、VBAである範囲(例えば、A1からK20)を指定した後、その範囲内にある値の中で、aaaとbbb以外の値のセルを空白セルにしたいのですが、どのようにしたらよいのでしょうか? aaaとbbbの入っているセルを空白セルにする場合と、aaaとbbb以外の値が入っているセルを空白セルにする方法を教えてください。 宜しくお願いします。

  • セルA1からA10の値を表示ができない

    自分の無能さに腹が立ちます。 セルA1からA10の値を表示したいのですがうまくいきません。 Sub Macro6() MsgBox Range("A1:A10").Value End Sub 「型が一致しません」とエラーが出ます。 なぜでしょう?

  • エクセルVBA、他のファイルからのコピー

    BBA初心者です aaa.xlsのマクロで aaa.xls にbbb.csvのデータを貼り付けたいのですが Sub () Windows("bbb.csv").Activate…ここのbbbってところをセル参照にしたいのです ActiveCell.Range("A1:A10").Select Selection.Copy Windows("aaa.xls").Activate ActiveSheet.Paste End Sub 1つ上のセルにbbbと入力されていればbbb.csvのデータを 1つ上のセルにcccと入力されていればccc.csvのデータを 貼り付けれるようなマクロはどう書けばいいのでしょうか よろしくお願いします

  • UsedRange A1があれば、msgbox

    http://www.moug.net/tech/exvba/0050092.html をみて、 Sub UsedRangeSamp1() ActiveSheet.UsedRange.Select End Sub と言うコードを使ってるのですが、 この中に、A1があれば、msgboxでOKを表示させるにはどうすればいいですか? ifステートメントを使うんだと思いますが、それ以上がわかりません。 ご回答よろしくお願いします。

  • VBAによるフィルターについて

    VBAによるフィルターについて 表のフィールドから指定したセルの値を含む行をフィルターにかけるVBAを作成しています。 下記のように作成したのですが,うまくいきません。 表の上に検索値を入力するところを設定しました。 (C1=検索値です。)お願いします。 Sub Macro2() ' ' Macro2 Macro ' ' ActiveSheet.Range("$A$4:$L$425").AutoFilter Field:=3, Criteria1:="range(*c1*)", _ Operator:=xlAnd End Sub

  • エクセルVBA サブルーチンの使い方

    下記コードにて、MSGBOXで88を表示するには、どう変更すればよいですか? Sub aaa() bbb MsgBox b End Sub Sub bbb() b = 88 End Sub

  • エクセルVBAのIDプロパティ?

    今日初めて知ったのですが「セルに識別用ラベルを設定する」IDプロパティというのがあるようです。ただVBEの「ヘルプ」を見ただけでは「Web ページとして保存し、HTML 行を Web ページに追加」するもののようで、Web ページ保存になど縁のないわたしにはさっぱりわかりません。でも、面白そうなので試してみると、 Sub ID_Wt() ActiveSheet.Range("V10").ID = "ABC" End Sub で、セルV10に"ABC"が設定され、 Sub ID_Rd() MsgBox ActiveSheet.Range("V10").ID End Sub で、読むことができました。 ◎ IDはセルのどこに保存されたのでしょうか?セルのどこを見ても見当たりませんし、そのセルはそれまでのUsedRange外に設定した場合でもUsedRangeは拡張されまれません。とても不思議です。 ◎ VBA以外の方法でIDを読むことは出来るのでしょうか? ◎ 一旦終了すると設定したIDは消えてしまうようですがそういうものなのでしょうか?

  • VBA コードを中断するには?

    下記コードにて、 aaaを実行し、Exit Subのところで実行そのものを終了させたいのですが、このままだとcccのコードが実行されてしまいます。 Exit Subのところをどう変更すればよいのでしょうか? Sub aaa() bbb ccc End Sub Sub bbb()  略  Exit Sub  ←ここをどう書けば良いですか?  略 End Sub Sub ccc()  略 End Sub

  • UsedRangeの範囲の設定

    入力したデータの一番下にの行に"data_end"と入力するようにしたいと思っております。 今、UsedRangeを使用してその下の行に"data_end"と入力しようとすると以前に使用した行まで選ばれてしまい、空白の行ができてしまう状態になっています。また、CurrentRegionを使用すると空白行があると空白行以降を選んでもらえません。(データがトビトビにあるので空白行と認識されてしまう可能性があります。) しかも、データの入力されているセルは別のシートで計算式に参照されているのでいらない行を削除することはできません。 今入力されている状態の一番下の行を認識するにはどうしたらよいでしょうか? プログラムは以下のように入力してあります。 Sub test() Dim row_end As Integer Sheets("sheet1").Select ActiveSheet.UsedRange.Select row_end = Selection.Rows.Count Sheets("sheet1").Cells(row_end + 1, 1).Value = "data_end" End Sub ものすごく基本的な質問かもしれませんが、よろしくお願いしますっっっ。

  • UsedRangeを使ってソートすることは可能?

    UsedRangeを使ってソートすることは可能ですか? エクセルですが 学年  組  出席番号 2    A    1 1    B    2 と言うデータがあり、 これにフィルタをかけつつ、A列で昇順に並び替えるVBAを作ってるのですが Sub さんぷる() オートフィルタをかける Range(Cells(1, 1), Cells(1, Cells(1, Columns.Count).End(xlToLeft).Column)).AutoFilter UsedRange.Sort Key1:=Cells(1, 1), order1:=xlAscending End Sub とすると、 UsedRangeでコンパイルエラーになるのですが どうすればよろしいでしょうか?

専門家に質問してみよう