- ベストアンサー
エクセルVBAでの範囲選択について
はじめまして。 VBAを勉強し始めたばかりなのですが、 sub test() Range("A1:M10").Select Selection.WrapText=True End Sub とあるものを、 『InputBox』を使わずに自由に範囲選択をするように するにはどういう方法があるのですか?
- marumie0712
- お礼率75% (3/4)
- オフィス系ソフト
- 回答数4
- ありがとう数6
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
先に範囲を指定してから、マクロ実行ではいけないのですか? sub test() Selection.WrapText=True End Sub
その他の回答 (3)
- imogasi
- ベストアンサー率27% (4737/17068)
>「VBAを勉強し始めたばかりなのですが」,と言う点で >「『InputBox』を使わずに」と、なぜINPUTBOXを避けたか判りませんが、 Sub test01() msg = "範囲を指定してください" Set rng = Application.InputBox(msg, "セル範囲指定", Type:=8) rng.Interior.ColorIndex = 6 End Sub 実行中に、マウスで範囲指定が出来ますよ。こんなの知ってますか。
お礼
有り難うございます。参考になりました。
- taocat
- ベストアンサー率61% (191/310)
ありゃー、hana-hana3さん申し訳ありませぬ。 ちんたらちんたらタイプしてたらかぶりました。
- taocat
- ベストアンサー率61% (191/310)
Range("A1:M10").Selectを削除して Sub test() Selection.WrapText=True End Sub としておき ドラッグで任意の範囲を選択後、このコードを実行。 以上。 外しましたらご容赦!(^^;;;
お礼
有り難うございます。参考になりました。
関連するQ&A
- 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月と増えたりするので。 何か方法があればご指導お願いします。
- ベストアンサー
- オフィス系ソフト
- エクセルVBAでグラフの範囲を設定する方法
お世話になっています。 グラフ自体は、作成済みのものを使用して、データの範囲だけを 変更させる方法を考えています。 A列に、データが入っている範囲を選択して、選択したセル範囲を グラフのデータ範囲としたいと思います。 現在、作成したプログラムは以下のものです。 当たり前なんでしょうが、以下のものではエラーになります。 Loopコマンドで、アクティブになったセルをグラフのデータ範囲に 設定する方法を教えてください。 よろしくお願いします。 Sub グラフ作成() ' Dim 範囲 As String Range("A1").Select Do Until ActiveCell = "" ActiveCell.Offset(1, 0).Activate Loop ActiveCell.Offset(-1, 0).Activate Range(Selection, Selection.End(xlToRight)).Select Range(Selection, Selection.End(xlUp)).Select 範囲 = ActiveCell ActiveSheet.ChartObjects("グラフ 1").Activate ActiveChart.SetSourceData Source:=Range(範囲) End Sub
- ベストアンサー
- Visual Basic
- EXCEL VBAで
初心者です。 Sub Ksakujyo() Selection.SpecialCells(xlCellTypeBlanks).Select Selection.Delete Shift:=xlUp End Sub これでは対象セルが空白だったら該当するセルが見つかりませんと出ます。 それで If Range Is Nothing Then "対象がありません" End If を間に入れますが多分rangeのところが違うのでしょうね? それとこれは選択範囲を選択してないと全ての行で削除されるみたいです。 かなり調べましたがお手上げです。 どなたかご教授よろしくお願いします。
- ベストアンサー
- その他MS Office製品
- 選択した範囲を配列に格納
勉強はじめたばかりの超初心者です。 InputBoxメソッドを用いシートのなかからデータ処理をする範囲を選択 し、その選択した範囲の行数を求めようとしております。 下記の様にすればできることは承知しておりますが、選択した範囲の値 をSelectを用いずに直接配列に格納し、Ubound関数とかで行数を求める にはどうしたらよいのでしょうか。何かべつの変数を定義しVariantで 型宣言をしてといったところまでは想像つくのですが、それ以上がわかりません。ご教示いただけると幸いです。 Dim MotoN As Integer Public Sub データ範囲取得() Set MotoHani = Application.InputBox(Prompt:="元範囲を選択", Type:=8) MotoHani.Select MotoN = Selection.Rows.Count End Sub
- ベストアンサー
- Visual Basic
- エクセル2000でのVBAについて
下記のVBAを書いているのですが、3つのIF文を1つに まとめたいのですが教えてください。 If Range("E16") = "申請者" Then Sheets("ログイン").Select Sheets("報告票").Select ActiveSheet.Unprotect Range("M3:U7").Select Selection.Locked = False Selection.FormulaHidden = False ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True '数式バー表示 Application.DisplayFormulaBar = True Range("H9").Select Else: Sheets("ログイン").Select If Range("E16") = "所属長承認" Then Sheets("報告票").Select ActiveSheet.Unprotect Range("D3:L7").Select Selection.Locked = False Selection.FormulaHidden = False ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True '数式バー表示 Application.DisplayFormulaBar = True Range("H9").Select Else: Sheets("ログイン").Select If Range("F16") = "所属長承認" Then Sheets("報告票").Select ActiveSheet.Unprotect Range("BS3:CA7").Select Selection.Locked = False Selection.FormulaHidden = False ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True '数式バー表示 Application.DisplayFormulaBar = True Range("H9").Select Else: Sheets("ログイン").Select end if end if end if
- ベストアンサー
- Visual Basic
- エクセルVBAで指定範囲内のオートシェープを選択
エクセル2000です。 仮にワークシートのRange("A1:B5")の範囲の中に貼り付けられたオートシェープの直線をまとめて選択する場合にはどのように書けばいいのでしょうか? Sub TEST() Application.Intersect(Range("A1:B5"), ActiveSheet.Lines).Select End Sub とやってみましたが、エラーでした。 どうぞよろしくお願いします。
- ベストアンサー
- オフィス系ソフト
- ExcelのVBAで、application.inputboxで、開いている他のブックを選択できません。
いつもお世話になっております。 ExcelのVBAで、application.inputboxで他のブックを選択したいのですが、どうも出来ません。下記のコードを実行して、InputBoxで、他のブックのセルを指定したいのですが、どうも現在開いている他のブックをマウスでクリック出来ないのです。 下記のコードは、『選択範囲を、InputBoxで指定した先にコピーしたい』という意図から、まずは、Msgboxに表示してみることにしたものです。 これは、何故なのでしょうか? ご教示下さい。 'rngOriginalを、rngCopyToにコピーします。 Sub Test() Dim rngOriginal As Range Dim rngCopyTo As Range Set rngOriginal = Selection.Cells Set rngCopyTo = Application.InputBox("コピー先を選択してください", , , , , , , 8) With rngOriginal MsgBox .Parent.Parent.Name & " " & .Parent.Name & "!" & .Address(, , Application.ReferenceStyle) End With With rngCopyTo MsgBox .Parent.Parent.Name & " " & .Parent.Name & "!" & .Address(, , Application.ReferenceStyle) End With End Sub
- ベストアンサー
- オフィス系ソフト
- エクセルのVBAを教えて下さい。
Private Sub OptionButton1_Click() Range("A15").Select Selection.Font.ColorIndex = 1 Range("B12").Select Selection.Font.ColorIndex = 1 Range("A18").Select Selection.Font.ColorIndex = 2 Range("B18").Select Selection.Font.ColorIndex = 2 Sheets("シート1").Image1.Visible = False Sheets("シート1").Image2.Visible = True End Sub 上記のようなプログラムがありますが、たとえば、以下をまとめてコンパクトに出来ますか? Range("A15").Select Selection.Font.ColorIndex = 1 Range("B12").Select Selection.Font.ColorIndex = 1 オートシェイプを利用して画像をエクセル内に作りました。 その画像を表示、非表示させたいのですが、どのようにすればよいでしょうか?よろしくお願いします。
- 締切済み
- オフィス系ソフト
- ExcelのVBAです。
先日お答えいただいたVBAなんですが、 Sub Macro1() Sheets("Sheet1").Select Range("A1").Select Range(Selection, Selection.End(xlDown)).Select Selection.Copy Sheets("Sheet3").Select Range("A1").Select ActiveSheet.Paste Selection.End(xlDown).Select Application.CutCopyMode = False Do Selection.Insert Shift:=xlDown Selection.End(xlUp).Select Loop Until ActiveCell.Address = "$A$1" End Sub というのを使用させて頂いてます。 これを、コピー先のものを上書きせずに、コピーされたものがあれば表示させるといった風に出来ないでしょうか? 例 A A 1 a 1 2 b → 2あ 3 c 3 右から左に一行間隔で別シートに表示させたいのですが、 A 1 a 2 あ 3 b 4 5 b という結果にしたいのです。 拙い文章で申し訳ないのですが、教えて頂きたいです。
- ベストアンサー
- その他MS Office製品
- エクセルVBAでセル範囲の表記方法
このサイトで、セル範囲を表記するのに [B10:C11] のような書き方をはじめて見ました。 以下のように試してみました。 Sub test01() Range("B10:C11").Select End Sub Sub test02() [B10:C11].Select End Sub まったく同じように働きます。 これは、Range("B10:C11") と、[B10:C11] は同じ意味だということでしょうか? 同じなら、この方が文字数も少なく書きやすいと思うのですが、あまり見かけないのはなぜでしょうか? また、変数を使おうと Sub test03() X = 11 Range("B10:C" & X).Select End Sub を次のように書き換えましたところ、「オブジェクトが必要です」という実行時エラーになってしまいました。 Sub test04() X = 11 [B10:C & x].Select End Sub この書き方は変数は組み合わせられないのでしょうか?
- ベストアンサー
- その他MS Office製品
お礼
有り難うございます。参考になりました。