• ベストアンサー

位置の把握

お世話になります。 下記の様な記述で、最下セルの位置を知る事が出来ますが、 同じ様に行方向ではどう言う様に記述内容を変えたらいいで しょうか。 お教え頂きたく宜しくお願いします。    記 r = Sheets("sheet1").Cells(Rows.Count, 1).End(xlUp).Row

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

  • ベストアンサー
  • fujillin
  • ベストアンサー率61% (1594/2576)
回答No.1

RowがColumになるだけで、要領は同じです。  col = Sheets("Sheet1").Cells(1, Columns.Count).End(xlToLeft).Column

miruchoko
質問者

お礼

お早い回答ありがとうございます。 参考になりました。

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

その他の回答 (1)

  • DOUGLAS_
  • ベストアンサー率74% (397/534)
回答No.2

 既に回答が付いていますが。。。 ・「Rows」が「行」なら「列」は「Columns」です。  ヘルプ:[Rows プロパティ] - [関連項目] 参照 ・「xlUp」が「上」なら「左」は「xlToLeft」です。  ヘルプ:[End プロパティ] - [XlDirection クラスの定数] 参照。

miruchoko
質問者

お礼

お早い回答ありがとうございます。 参考になりました。

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

関連するQ&A

  • エクセル VBA 特定文字がある行を別シートに移動

    ソフト excel2003 o列に文字列が入力された表があります。 マクロ実行時下記のようにするには、VBAのコードをどのように記入すればよろしいでしょうか? 赤枠で囲んだボタンをクリックすると シート1のO列に 中 が入力されている行を切り取りし中シートに貼り付け (下の行は上方向にシフト) ※ シート1の内容は日毎に更新されますので、更新後、赤枠で囲んだボタンをクリックするとその時点で 中 が入力されているものは中シートのリストへ追加されるようにしたいのです。 以前ここで教えていただいたものを参考に作成してみたの(以下に記載)ですがうまくいきません。 お助けいただけないでしょうか。 宜しくお願い致します。 Sub ボタン中シート_Click() 'Sheet2の挿入位置(C列は結合セルではなく、必ず何か入っている事) nMax2 = Sheets("中シート").Cells(Rows.Count, 3).End(xlUp).Row + 1 With Sheets("sheet1") nMax1 = .Cells(Rows.Count, 9).End(xlUp).Row For i = nMax1 To 2 Step -2 If .Cells(o, 15) = "中" Then .Range(.Cells(o, 1), .Cells(o + 1, 10)).Copy Sheets("中シート").Cells(nMax2, 1).Insert Shift:=xlDown .Range(.Cells(o, 1), .Cells(o + 1, 10)).Delete Shift:=xlUp End If Next i End With End Sub

  • 最終行/処理対象のデータまでを表すVBA

    こんばんは、データの最終行/処理する対象のセルまで処理する場合のVBAの記述について質問させてください!VBAの最終行/処理する対象のセルまで選択するために使用する記述方法が何種類かありますが、そのうち、書籍やネットで検索しても出てこない記述方法について今一つ理解ができていません(T_T) 本屋で売っている書籍やネットで検索すると出てくる記述方法 Range~.End(xlUp).Row Range~.CurrentRegion Range~.SpecialCells(xlLastCell) Range~.Cells(Rows.Count, 1).End(xlUp).Row 上記のようなVBAは書籍やネットで検索すると説明や違いについても出てくるので、説明を読めば理解ができるのですが、 Sheets("テスト").Range("A1:C" & Sheets("テスト").Cells _(1).CurrentRegion.Rows.Count) Range("A1").CurrentRegion.Cells(Range _("A1").CurrentRegion.Cells.Count).Row 上記のようなVBAについては検索しても説明など出てこないうえに、 なぜ上記のような記述になるのかあまり理解できていません(>_<) 書籍やネットで検索すると出てくる「Range~.CurrentRegion」などの記述方法から何となく、CurrentRegionやCells.Countを使わないといけないというのは理解できますが、なぜ「~CurrentRegion.Rows.Count)」はRowsがカッコの中に入っていて、「~CurrentRegion.Cells.Count).Row」はカッコの外に出ているのか??といった細かいことが分からずにいます。。。 半ば丸暗記のようにして使ってしまっているのですが、もし上記のようなVBAについてわかるかたがいらっしゃれば、ご教授いただけるととても嬉しいです! また、上記以外にもまだ検索しても出てこないようなVBAがあるのでしょうか?? 頭が混乱しそうです!(゜Д゜;)

  • 【Excel VBA】データ貼り付けの開始位置について

    Excel2003を使用しています。 先日、こちらでアドバイスをいただきながら、下記のようなマクロを作りました。内容はあるセルの値と同じ名前のシートへデータをコピーするというものです。 Sheet1に貼り付け元のデータが表形式であり、必要なデータのみ該当のシートへコピーします。マクロ実行後は、別の新しいデータをSheet1へコピペして、またマクロを実行するのですが、その際、データの貼り付け開始位置を前回マクロを実行して貼り付けられたデータから2行空けたいのですが、可能でしょうか? ________________________________________________________________________________________________________________________________ Sub test3() Dim n As Long Dim i As Long Dim j As Long  Worksheets("Sheet1").Activate   For n = 4 To Cells(Rows.Count, 2).End(xlUp).Row    If Cells(n, 3).Value <> "" Then     With Worksheets(CStr(Cells(n, 3).Value))       i = .Cells(Rows.Count, 3).End(xlUp).Row + 1       Cells(n, 2).Copy .Cells(i, 2)       Cells(n, 7).Resize(, 2).Copy .Cells(i, 4)       Cells(n, 11).Copy .Cells(i, 3)     End With    End If    If Cells(n, 13).Value <> "" Then     With Worksheets(CStr(Cells(n, 13).Value))       j = .Cells(Rows.Count, 3).End(xlUp).Row + 1       Cells(n, 12).Copy .Cells(j, 2)       Cells(n, 17).Copy .Cells(j, 4)       Cells(n, 18).Copy .Cells(j, 6)       Cells(n, 11).Copy .Cells(j, 3)     End With    End If   Next n End Sub

  • エクセルマクロ コピー時の記述(位置検出含む)

    Dim Lstrow As Integer '変数の型を宣言 Lstrow = Cells(Rows.Count, 22).End(xlUp).Row '英語不合格者の表の最終行までの行数を数える Range(Cells(3, 22), Cells(Lstrow, 27)).Copy _   '上の表の「見出し」を除いた部分を選択し、コピーし、 Destination:=Range("aj300").End(xlUp).Offset(1)  '別の表の下に接続して貼り付ける という、記述をしました。(これまでこちらで教えていただいたことを組み合わせました。) 最後の貼り付けの番地指定のところで質問なのですが、"aj"列を300行から上がって検出するという記述ではなく、Lstrow = Cells(Rows.Count, 22).End(xlUp).Rowのような方法で、表の長さにかかわらず使用できる汎用性のある記述を教えてください。 よろしくお願いいたします。

  • マクロ 行を切り取ってペーストでエラーになる

    J列に「0」と「#N/A」の行を切り取って集計対象外シートに貼り付けるといったコードです。 何故か途中でエラーになります。 どこが間違っておりますか? 宜しくお願いします。 Dim LastRow As Long LastRow = Cells(Rows.Count, 10).End(xlUp).Row For i = 1 To LastRow If Cells(i, 10) = "0" Or Cells(i, 10) = "#N/A" Then Rows(i).Cut Sheets("集計対象外").Cells(Rows.Count, 1).End(xlUp).Offset(1, 0) End If Next i

  • VBA ユーザーフォーム リストボックス

    教えてください。 現在下記のようなコードでリストボックスに対象セルの値を表示しています。 Private Sub UserForm_Initialize() ListBox1.List = Range(Range("M5"), Cells(Rows.Count, 14).End(xlUp)).Value End Sub この時、例えば別シート(仮にsheet3)のセルを表示したい場合 どのようにすればいいでしょうか? ListBox1.List = sheets("sheet3").Range(Range("M5"), Cells(Rows.Count, 14).End(xlUp)).Value としてもエラーになってしまいます。 よろしくお願いします。

  • マクロで複数の行をまとめて切り取りする方法

    Iの列のセルに「テスト」があったら、その行を切り取ってシート2に貼り付ける といった流れのコードが下記です。 Sub 切り取り() Dim i, LastRow As Long LastRow = Cells(Rows.Count, 9).End(xlUp).Row For i = 1 To LastRow If Cells(i, 9) = “テスト” Then Rows(i).Cut Sheets("Sheet2").Cells(Rows.Count, 1).End(xlUp).Offset(1, 0) End If Next i End Sub ●Iの列のセルに「テスト」と「課題」があったら、その行を切り取ってシート2に貼り付ける といったものをしたいのです。 1. If Cells(i, 9) = “テスト” Then ↓ If Cells(i, 9) = “テスト,課題” Then 結果エラー 2. If Cells(i, 9) = “テスト” Then ↓ If Cells(i, 9) = “テスト&課題” Then 結果エラー 正常なコードを教えてくださいますか? 宜しくお願いします。

  • エクセルVBAにて

    エクセルのVBAにて irow=Cells(Rows.Count,1).End(xlUp).Row irowは整数型として宣言している変数です。 という記述の場合、どのような内容を表しているのでしょうか? 特に、Cells~Endの前までの記述がよく分からないのですが・・・ よろしくお願いします。

  • アプリケーションまたはオブジェクト定義のエラーです

    データを入力するシート「input]、データを格納するシート 「data」とがあり、 新規のレコードを追加入力するために 新規入力ボタン(CommandButton2)を作成しましたが、 実行しようとすると、表記のエラーが出てしまします。 コードの確認、とそして、どこがいけないのかをご指摘いただけないでしょうか?どうかよろしくお願いいたします。 以下コードです。 Private Sub CommandButton2_Click() '新規入力 Dim row As Integer row = Sheets("data").Cells(Rows.Count, 2).End(xlUp).Offset(1) Sheets("data").Cells(row, 2).Value = Sheets("data").Cells(row - 1, 2).Value Range("AL1") = Sheets("data").Cells(row, 2).Value End Sub

  • EXCEL VBA 早く処理をする

    よろしくお願いします 下の構文を標準モジュールに書き込み、callで実行しているのですが 処理に時間がかかります。 処理を早くする方法と構文の簡素化のご教示をお願いします。 Application.ScreenUpdating = False For i = 1 To 12 With Worksheets(i) .Select LastRow = .Range("A150").End(xlUp).Row + 1 .Range("A8:G" & LastRow).Sort Key1:=Range("A8"), order1:=xlAscending .Range("G8:G" & LastRow - 1).Formula = "=G7+E8-F8" LastRow = .Range("A150").End(xlUp).Row + 1 .Range("A" & LastRow).Select Dim EndRow As Long EndRow = .Range("A" & Rows.Count).End(xlUp).Row Cells(Rows.Count, 1).End(xlUp).Offset(1, 3) = .Name & "合計" Cells(Rows.Count, 1).End(xlUp).Offset(1, 4) = Application.WorksheetFunction.Sum(Range("E7:E" & EndRow)) Cells(Rows.Count, 1).End(xlUp).Offset(1, 5) = Application.WorksheetFunction.Sum(Range("F7:F" & EndRow)) Cells(Rows.Count, 1).End(xlUp).Offset(2, 3) = "前月繰越" Cells(Rows.Count, 1).End(xlUp).Offset(2, 4) = .Range("G7") Cells(Rows.Count, 1).End(xlUp).Offset(2, 5) = "" Cells(Rows.Count, 1).End(xlUp).Offset(3, 4) = "" Cells(Rows.Count, 1).End(xlUp).Offset(3, 3) = "次月繰越" Cells(Rows.Count, 1).End(xlUp).Offset(4, 3) = "合計" Cells(Rows.Count, 1).End(xlUp).Offset(3, 5) = Cells(Rows.Count, 1).End(xlUp).Offset(2, 4) + Cells(Rows.Count, 1).End(xlUp).Offset(1, 4) - Cells(Rows.Count, 1).End(xlUp).Offset(1, 5) Cells(Rows.Count, 1).End(xlUp).Offset(4, 4) = Cells(Rows.Count, 1).End(xlUp).Offset(2, 4) + Cells(Rows.Count, 1).End(xlUp).Offset(1, 4) Cells(Rows.Count, 1).End(xlUp).Offset(4, 5) = Cells(Rows.Count, 1).End(xlUp).Offset(3, 5) + Cells(Rows.Count, 1).End(xlUp).Offset(1, 5) Cells(Rows.Count, 1).End(xlUp).Offset(1, 6) = "" Cells(Rows.Count, 1).End(xlUp).Offset(2, 6) = "" Cells(Rows.Count, 1).End(xlUp).Offset(3, 6) = "" Cells(Rows.Count, 1).End(xlUp).Offset(4, 6) = Cells(Rows.Count, 1).End(xlUp).Offset(0, 6) .Range("C7").End(xlDown).Select Selection.Offset(4, 2).Borders(xlEdgeTop).Weight = xlHairline Selection.Offset(4, 2).Borders(xlEdgeBottom).LineStyle = xlDouble Selection.Offset(4, 3).Borders(xlEdgeTop).Weight = xlHairline Selection.Offset(4, 3).Borders(xlEdgeBottom).LineStyle = xlDouble Selection.Offset(4, 4).Borders(xlEdgeTop).Weight = xlHairline Selection.Offset(4, 4).Borders(xlEdgeBottom).LineStyle = xlDouble Selection.Offset(0, 2).Borders(xlEdgeTop).Weight = xlHairline Selection.Offset(0, 2).Borders(xlEdgeBottom).LineStyle = xlContinuous Selection.Offset(0, 2).Borders(xlEdgeBottom).Weight = xlThin Selection.Offset(0, 3).Borders(xlEdgeTop).Weight = xlHairline Selection.Offset(0, 3).Borders(xlEdgeBottom).LineStyle = xlContinuous Selection.Offset(0, 3).Borders(xlEdgeBottom).Weight = xlThin Selection.Offset(0, 4).Borders(xlEdgeTop).Weight = xlHairline Selection.Offset(0, 4).Borders(xlEdgeBottom).LineStyle = xlContinuous Selection.Offset(0, 4).Borders(xlEdgeBottom).Weight = xlThin End With Next i Application.ScreenUpdating = True