• ベストアンサー

ExcelVBAにて、選択されているセルの行番号取得が上手くいきません。

こんにちは、TwinsAngelです。 Dim ActiveRow as Integer Set ActiveRow = ActiveCell.Row ↑この部分で、オブジェクトが必要です。 といわれてしまいました。 型をIntegerから、Rangeに変更してみたところ、 型が一致しません。といわれてしまいましたので、 Integerに直しました。 無事に、変数へ行番号を代入するには、どうしたらよいでしょうか? 教えてください。

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

  • ベストアンサー
回答No.1

Integerとかには Setは要らない。 ActiveRow = ActiveCell.Row で十分

TwinsAngel
質問者

お礼

回答ありがとうございます。 まだ、VBAに不慣れなのでSetの使い方が、十分に分かっていませんでした。 早速、Setを消して、実行してみたいとおもいます。

関連するQ&A

  • VBA 選択された離れたセルの値の取得について

    EXCELのVBAでどうしても前に進めず困っております。 目的としているコードは、離れたセル(複数)をあらかじめCtrlキーで選択状態にしておき、選択されたセルの値のみをVBAが別のセルに並べていくというものです。 以下が私の作ったコードなのですが、思ったとおりの動作をしてくれません。 VBA初心者なもので、おかしな記述がたくさんあると思うのですが、どなたかアドバイスお願いします。 Public Sub xx() Dim SelectArea As String Dim TargetCell As Range Dim a As Integer Dim Row As Integer Dim Column As Integer Dim CNT1 As Integer a = 0 Row = 0 Column = 0 For CNT1 = 1 To 10 Row = Row + 1 SelectArea = Selection.Address Set TargetCell = Range("B3").Cells(Row - 1, Column) If Intersect(Range(SelectArea), TargetCell) Is Nothing Then Else Range("A30").Cells(a, 0) = Range("B3").Cells(Row - 1, Column).Value a = a + 1 End If Next End Sub

  • エクセルマクロで、選択しているセルから印刷範囲を設定する方法を教えて下さい。

    こんにちは。いつもお世話になっています。 エクセルで、データーベースを作成しました。 これから日を増すごとに、データ行がどんどん増えていきます。 アクティブにしたセルから、列右へ9行、行下へ15行の範囲を印刷させたいのです。 Dim r As Integer r = ActiveCell.Column Dim d As Integer d = ActiveCell.Row Dim h As Integer h = Cells(r.g).Offset(15, 9) ActiveSheet.Range("rd:h").PrintOut , preview:=True このように書いてみたのですが、動きません。 すみませんが、どうしたら良いか教えて下さい。 よろしくお願いします。

  • エクセルの行選択マクロ

    エクセル2010にて。 行を選択した状態から、1行目から現在行の1つ上までを選択し、それを非表示とするマクロを組みたいのです。 VBAは全く分からず・・・ 変数を宣言し、その変数を代入すれば良いかと試行錯誤しましたが判らず。 Sub 3行目から現在行より上を選択して非表示() '  Dim x As Integer  x = ActiveCell.Row Rows("3:x-1").Select Selection.EntireRow.Hidden = True End Sub では、全く動作せず。。 例えば20行目を選択した状態で、マクロを実行すると3~19行目までが非表示になるようにしたいのです。御教示下さいませ。

  • EXCELVBAセル選択方法教えてください。

    Sub マクロ() ' Dim i, j, k As Long Dim ws As Worksheet Set ws = Worksheets("Sheet1") k = ws.Cells(Rows.Count, 1).End(xlUp).Row If k > 1 Then ws.Rows(2 & ":" & k).ClearContents  上記はマクロの構文です。 最終行は変数でデータのある最終行の行番号を得て、 2行目からデータのある最終行の行 の行全体をクリアするものですが、 行全体でなく A~C列のデータをクリアする構文教えてください。

  • セルの値を消すとVBAエディタ画面でエラーが出てしまいます。

    セルの値を消すとVBAエディタ画面でエラーが出てしまいます。 "特定の列"に、"特定の値"を入力したとき、(下記実例では1列目に値6) 次の行からその値に24を足し続けるというプログラムを作りました。 実行すると動くことは動くのですが、シートに移ってそれらの数字を消すと 「実行エラー、方が一致しません」とVBAエディタ画面に戻りエラーになってしまいます。 このエラーを出さなくするにはどうしたらよろしいでしょうか? その他、これ以外に改善点などございましたらご教授願います。 Private Sub Worksheet_Change(ByVal Target As Range) Dim 列番号 As Integer Dim 行番号 As Integer Dim 時間 As Integer If Target.Column = 1 Then If Target.Value = 6 Then 行番号 = ActiveCell.Row 列番号 = ActiveCell.Column For 時間 = 30 To 2046 Step 24 Cells(行番号, 列番号).Value = 時間 行番号 = 行番号 + 1 Next 時間 End If End If End Sub

  • Excel VBAで「セルが選択されたら…」

    任意の列のセルが選択されたら、マクロを実行したいんですが、どのようにしたらいいのでしょうか? 「セルを変更したら…」っていうのはわかるんですが。。 Private Sub ***() Dim i As Integer i = ActiveCell.Row ***の部分がわかりません。 よろしくお願いします。

  • Excel VBA でテキストボックスの値をセルA列から検索

    いつもお世話になります。 Private Sub CommandButton3_Click() Dim 行 As String Dim 列 As String Dim 最終行 As String Dim 検索行 As String Dim メッセージ As Integer Dim 一致 As Range Dim myNO As Variant Dim i As Long Sheets(3).Select 最終行 = Range("A2").End(xlDown).Offset(1).Select 行 = ActiveCell.Row 列 = ActiveCell.Column myNO = TextBox2.Value 検索行 = Range("A2").End(xlDown).Select ※・・・Set 一致 = Range("A2:検索検").Findwhat:=TextBox2,lookat:=xlWhole) If 一致 Is Nothing Then MsgBox "データがありません。新規コード入力します。" Cells(行, 列 + 0) = UserForm1.TextBox2.Value Cells(行, 列 + 1) = UserForm1.ComboBox7.Value Else i = Cells(行 - 1, "A") Cells(i, 列 + 0) = UserForm1.TextBox2.Value Cells(i, 列 + 1) = UserForm1.ComboBox7.Value End If End Sub 「エラー1004'Range'メソッドは失敗しました'Global'オブジェクト」とでます。※印が黄色になっています。 ユーザーフォーム1のテキストボックスの値をシート3のA列から検索して、一致すれば、A列の一致セルに上書き入力して、一致が無い場合はA列の空白セルに追加入力したいのです。よろしくお願い致します。

  • 選択したセルの座標の取得

    選択したセルの座標の取得 sheet1    A B C   1   2  α     3     sheet1のB2にはαという文字が挿入されており、ハイパーリンクの設定がしてあります。 B2をクリックするとsheet2に移行します。 sheet1で選択したセルの位置を取得したいのですが、上手くいきません。 ご教授の程、宜しくお願いします。  現在の記述は以下の通りです。  Private Sub Worksheet_FollowHyperlink(ByVal Target As Hyperlink)  Dim gyo As Long  Dim ret As Long  gyo = ActiveCell.Row  ret = ActiveCell.Column  MsgBox "行番号" & gyo & "列番号" & ret  End Sub Sheet1のB2を選択して、Sheet2に移行した時に、Msgboxには、 行番号2 列番号2 というようにしたいのです。

  • 行番号の取得

    4483740 で質問させていただいたものです。このなかで下記コードを実行したときに最大値、最小値のセルの行番号も取得するには、どうすればよいでしょうか。 '-------------------------------------------- Sub Test()  Dim MaxValue As Double  Dim MinValue As Double  Dim LastRow As Long  Dim myRange As Range Application.ScreenUpdating = False  LastRow = Cells(Rows.Count, "B").Row  Set myRange = Range(Cells(2, "B"), Cells(LastRow, "B"))  myRange.AutoFilter Field:=1, Criteria1:=">=0", Operator:=xlAnd  MinValue = WorksheetFunction.Min(myRange.SpecialCells(xlCellTypeVisible))  myRange.AutoFilter Field:=1, Criteria1:="<0", Operator:=xlAnd  MaxValue = WorksheetFunction.Max(myRange.SpecialCells(xlCellTypeVisible))  myRange.AutoFilter  MsgBox "最小値: " & MinValue & vbLf & "最大値: " & MaxValue Application.ScreenUpdating = True End Sub '----------------------

  • ExcelVBA 変数を使ってセルの番地を表す

    Exce2000のlVBAで Sub Macro11() Dim LastColumn As Integer Dim LastRow As Integer LastColumn=5 LastRow=1 Range(("LastColumn"), ("LastRow")).Select End Sub と打ち込むとエラーが出ます. 変数を使ってセルの番地を指定して セルを選択できないでしょうか?