タイトル欄のアドレスは、エクセルファンクラブの該当する頁へのリンク先です。
詳しい事は、こちらのお願いをご覧になってください。
1
縦と横のデータをそのまま置き換えるには?
2
ワークシート内のデータのある最終行を取得したいのですが・・・
3
セルの最終列、行を指定するには?
4
セルの最終列、行を別々に指定するには?
5 空白行をまとめて削除
6
セルの行列番号を求めるには?
7
一行おきに行の挿入するには
8 行の選択について
9
とびとびの空白行を削除するには?
10 1、2、3でセルの列を選択させるには?
11 最終行を取得するには
12 最終行のアドレスを取得するには
13 最終列を取得するには
14 1行置きに網がけするには
15 複数のシートにスクロールエリアを設定するには
16 空白セルを探し、その行を削除するには
17 列の名前を変更するには(A、B、C列を1、2、3にしたい)
18 最後に結合されたセルを選択するには
19 セルの幅・高さをミリの大きさにするには
20 選択範囲の4隅のセルに行番号、列番号を取得するには?
1 | 縦と横のデータをそのまま置き換えるには? | |||||||||||||||||||||||||||||||||||||
Excel97、Excel2000 共通 1.置き換えるデータをコピーします。 2.移動先のセルを選択し、 編集→形式を選択して貼り付け「行列を入れ替える」にチェックを入れてOK。 |
||||||||||||||||||||||||||||||||||||||
Sub miko_test() |
||||||||||||||||||||||||||||||||||||||
2 | ワークシート内のデータのある最終行を取得したいのですが・・・ | |||||||||||||||||||||||||||||||||||||
Sheet1
の最終行を取得するマクロです Sub Test() Dim LastRow As Long With Worksheets("Sheet1").Cells.SpecialCells(xlCellTypeConstants).Areas With .Item(.Count) LastRow = .Item(.Count).Row End With End With MsgBox LastRow End Sub このコードの使い方は、マクロの使い方(1)標準モジュールにあります。 |
||||||||||||||||||||||||||||||||||||||
3 | セルの最終列、行を指定するには? | |||||||||||||||||||||||||||||||||||||
Sub
Test() Dim r1 As Integer, r2 As Integer Dim c1 As Integer, c2 As Integer ActiveSheet.UsedRange.Select r1 = Selection.Row r2 = Selection.Rows.Count c1 = Selection.Column c2 = Selection.Columns.Count Cells(r1 + r2 - 1, c1 + c2 - 1).Select End Sub このコードの使い方は、マクロの使い方(1)標準モジュールにあります。 |
||||||||||||||||||||||||||||||||||||||
4 | セルの最終列、行を別々に指定するには? | |||||||||||||||||||||||||||||||||||||
aの値を変えることにより,列や行の変更が可能です. 下のコードでは,A列と1行目の最終セルが選択されます Sub Last_Cell1() Dim a As Integer a = 1 'A列の場合 Cells(65536, a).End(xlUp).Select End Sub Sub Last_Cell2() Dim a As Integer, b As Integer a = 1 '1行目の場合 Application.ScreenUpdating = False For b = 255 To 1 Step -1 Cells(a, b).Select If Cells(a, b).Value <> "" Then Exit For Next b Application.ScreenUpdating = True End Sub このコードの使い方は、マクロの使い方(1)標準モジュールにあります。 |
||||||||||||||||||||||||||||||||||||||
5 | 空白行をまとめて削除 | |||||||||||||||||||||||||||||||||||||
空白行をまとめて削除するなら、これで一発! Sub Test() Columns(列番号指定).SpecialCells(xlCellTypeBlanks).EntireRow.Delete End Sub このコードの使い方は、マクロの使い方(1)標準モジュールにあります。 |
||||||||||||||||||||||||||||||||||||||
6 | セルの行列番号を求めるには? | |||||||||||||||||||||||||||||||||||||
Sub
行列番号() Dim a As Long, b As Long a = ActiveCell.Row MsgBox "行番号は " & a & " です" b = ActiveCell.Column MsgBox "列番号は " & b & " です" End Sub このコードの使い方は、マクロの使い方(1)標準モジュールにあります。 |
||||||||||||||||||||||||||||||||||||||
7 | 一行おきに行の挿入するには | |||||||||||||||||||||||||||||||||||||
Excel97、Excel2000 共通 1. どこか、余った列に、1,2,3,..とオートフィルでデータの最終行まで連番を振っります。 2. その連番をコピーして真下の何もない行に貼りつけます。 3. その列をキーにして(データ列も1列加えた方がなおよい)全体を並び替えすれば、 間に1行ずつ空白行ができる格好になるので、あとは列を削除するだけです。 |
||||||||||||||||||||||||||||||||||||||
8 | 行の選択について | |||||||||||||||||||||||||||||||||||||
Rows("10:10").Select
を Rows(10, 10).Select・・・
のように数値で使いたい Range(Rows(10), Rows(10)).Select または Rows(10).Select |
||||||||||||||||||||||||||||||||||||||
9 | とびとびの空白行を削除するには? http://www.keep-on.com/~excelyou/2000lng4/200012/00120069.txt 「とびとびの空白行を削除するには?」 【VBA】 |
|||||||||||||||||||||||||||||||||||||
Sub Del_line() Dim myLastLow As Long Dim i As Long myLastLow = Range("A65536").End(xlUp).Row For i = myLastLow To 1 Step -1 If Cells(i, 1).Value = "" Then 'cells(i,1) の1の部分に列の番号を入れて下さい。 Cells(i, 1).EntireRow.Delete End If Next i End Sub このコードの使い方は、マクロの使い方(1)標準モジュールにあります。 |
||||||||||||||||||||||||||||||||||||||
10 | 1、2、3でセルの列を選択させるには? | |||||||||||||||||||||||||||||||||||||
Sheet1.Columns(1).Select Sheet1.Columns(2).Select Sheet1.Columns(3).Select |
||||||||||||||||||||||||||||||||||||||
11 | 最終行を取得するには http://www.ae.wakwak.com/~efc21/cgi-bin/wwwlng.cgi?print+200101/01010294.txt 「SpecialCells (xlCellTypeLastCell)について」 【VBAラウンジ】 |
|||||||||||||||||||||||||||||||||||||
罫線のみの行は無視して、指定の列の最終行を取得します。 Sub 最終行() Dim LastRow As Long LastRow = Cells(Rows.Count, 2).End(xlUp).Row 'B列対象。途中の空白セルを含む MsgBox LastRow End Sub このコードの使い方は、マクロの使い方(1)標準モジュールにあります。 また、Cells(Cells.Rows.Count, 2)は、次のように書くこともできます。 LastRow = Cells(Application.Rows.Count,1).End(xlUp).Row ’B列対象。表示が空白のセルを含む LastRow = Range("B1").End(xlDown).Row ’B列対象。空白のセルは含まない |
||||||||||||||||||||||||||||||||||||||
使用範囲内の最終行、最終列、最終セルを取得します Sub test() Dim r As Long Dim c As Integer With ActiveSheet.UsedRange r = .Row + .Rows.Count - 1 c = .Column + .Columns.Count - 1 End With MsgBox "最終行は" & r & "です" MsgBox "最終列は" & c & "です" Cells(r, c).Select End Sub このコードの使い方は、マクロの使い方(1)標準モジュールにあります。 |
||||||||||||||||||||||||||||||||||||||
SpecialCellsメソッドは、指定された条件を満たしている、すべてのセルを返します。 定数には、以下の種類があります。 xlCellTypeAllFormatConditions 表示形式が設定されているセル xlCellTypeAllValidation 条件の設定が含まれているセル xlCellTypeBlanks 空の文字列 xlCellTypeComments コメントが含まれているセル xlCellTypeConstants 定数が含まれているセル xlCellTypeFormulas 数式が含まれているセル xlCellTypeLastCell 使われたセル範囲内の最後のセル xlCellTypeSameFormatConditions 同じ表示形式が設定されているセル xlCellTypeSameValidation 同じ条件の設定が含まれているセル xlCellTypeVisible すべての可視セル |
||||||||||||||||||||||||||||||||||||||
12 | 最終行のアドレスを取得するには | |||||||||||||||||||||||||||||||||||||
Sub
test1() '最終行のアドレス Dim i As Long, myRange As Range i = Range("A65536").End(xlUp).Row Set myRange = Range("A1:A" & i) MsgBox myRange.Address End Sub このコードの使い方は、マクロの使い方(1)標準モジュールにあります。 |
||||||||||||||||||||||||||||||||||||||
Sub
test2() Dim i As Long, myRange As Range i = Cells(65536, 1).End(xlUp).Row Set myRange = Range(Cells(1, 1), Cells(i, 1)) MsgBox myRange.Address End Sub このコードの使い方は、マクロの使い方(1)標準モジュールにあります。 |
||||||||||||||||||||||||||||||||||||||
Sub
test3() Dim myRange As Range Set myRange = Range(Range("A1"), Range("A65536").End(xlUp)) MsgBox myRange.Address End Sub このコードの使い方は、マクロの使い方(1)標準モジュールにあります。 |
||||||||||||||||||||||||||||||||||||||
Sub
test4() Dim myRange As Range Set myRange = Range(Cells(1, 1), Cells(65536, 1).End(xlUp)) MsgBox myRange.Address End Sub このコードの使い方は、マクロの使い方(1)標準モジュールにあります。 |
||||||||||||||||||||||||||||||||||||||
13 | 最終列を取得するには | |||||||||||||||||||||||||||||||||||||
罫線のみの列は無視して、指定の行の最終列を取得します。 Sub 最終列() Dim LastCol As Long LastCol = Cells(1, Columns.Count).End(xlToLeft).Column ’1行目対象。途中空白含む MsgBox LastCol End Sub このコードの使い方は、マクロの使い方(1)標準モジュールにあります。 また、Cells(Cells.Rows.Count, 2)は、次のように書くこともできます。 LastCol = Cells(1, 256).End(xlToLeft).Column ’1行目対象。空白のセルを含む LastCol = Range("A1").End(xlToRight).Column ’1行目対象。空白のセルは含まない |
||||||||||||||||||||||||||||||||||||||
14 | 1行置きに網がけするには http://www.keep-on.com/~excelyou/2000lng4/200012/00120409.txt 「1行おきに網掛けするには?」 【VBA】 |
|||||||||||||||||||||||||||||||||||||
Sub
一行置きに網がけ() Dim i As Integer For i = 1 To 50 Step 2 '50行の範囲で、1行飛ばし Range(Cells(i, 1), Cells(i, 5)).Interior.Pattern = xlGray16 Next End Sub このコードの使い方は、マクロの使い方(1)標準モジュールにあります。 |
||||||||||||||||||||||||||||||||||||||
15 | 複数のシートにスクロールエリアを設定するには | |||||||||||||||||||||||||||||||||||||
Private
Sub Workbook_Open() Dim ws As Worksheet For Each ws In Worksheets(Array("Sheet1", "Sheet2", "Sheet3")) ws.ScrollArea = "A:E" Next End Sub このコードの使い方は、マクロの使い方(3)This Workbookのモジュールにあります。 |
||||||||||||||||||||||||||||||||||||||
全シートの場合 Private Sub Workbook_Open() Dim ws As Worksheet For Each ws In Worksheets: ws.ScrollArea = "A:E": Next End Sub このコードの使い方は、マクロの使い方(3)This Workbookのモジュールにあります。 |
||||||||||||||||||||||||||||||||||||||
16 | 空白セルを探し、その行を削除するには | |||||||||||||||||||||||||||||||||||||
Sub
Test1() Dim i As Integer On Error Resume Next For i = 1 To 3 '1〜3(A〜C)列の中の空白セルを探します。 Columns(i).SpecialCells(xlCellTypeBlanks).EntireRow.Delete Next i End Sub このコードの使い方は、マクロの使い方(1)標準モジュールにあります。 |
||||||||||||||||||||||||||||||||||||||
Sub
Test2() 'A〜C列の中の空白セルを探してその行全体を削除します。 Range("A:C").SpecialCells(xlCellTypeBlanks).EntireRow.Delete End Sub このコードの使い方は、マクロの使い方(1)標準モジュールにあります。 |
||||||||||||||||||||||||||||||||||||||
17 | 列の名前を変更するには(A、B、C列を1、2、3にしたい) http://www.keep-on.com/~excelyou/2000lng5/200009/00090046.txt 「列の名前を変更するには?」 【その他】 http://www.ae.wakwak.com/~efc21/cgi-bin/wwwlng.cgi?print+200101/01010403.txt 「cellsのアドレスの取得方法」 【VBA】 |
|||||||||||||||||||||||||||||||||||||
Excel97、Excel2000 共通 1. メニュー[ツール]-[オプション] 2. [全般]タブの[R1C1参照形式を使用する] のチェックを切り替えます。 |
||||||||||||||||||||||||||||||||||||||
Sub 列番号変更() With Application Select Case .ReferenceStyle Case xlA1 .ReferenceStyle = xlR1C1 Case xlR1C1 .ReferenceStyle = xlA1 End Select End With End Sub このコードの使い方は、マクロの使い方(1)標準モジュールにあります。 |
||||||||||||||||||||||||||||||||||||||
18 | 結合された最後のセルを選択するには http://www.ae.wakwak.com/~efc21/cgi-bin/wwwlng.cgi?print+200101/01010113.txt 「最後に結合されたセルを選択したい」 【VBAラウンジ】 |
|||||||||||||||||||||||||||||||||||||
A列の一番最後に結合されたセルを選択します。 Sub test() Dim i As Long Dim r As Long With Columns(1) r = .SpecialCells(xlCellTypeLastCell).Row For i = r To 1 Step -1 If .Cells(i).MergeCells = True Then .Cells(i).Select: Exit Sub End If Next End With End Sub このコードの使い方は、マクロの使い方(1)標準モジュールにあります。 |
||||||||||||||||||||||||||||||||||||||
19 | セルの幅・高さをミリの大きさにするには http://www.keep-on.com/~excelyou/2000lng1/200010/00100086.txt 「セルの幅をセンチで表示する」 【編集】 http://www.ae.wakwak.com/~efc21/cgi-bin/wwwlng.cgi?print+200208/02080028.txt 「シート上の図形10.75cm×10.9cmを印刷すると10cm×10cm になる?」 【VBAラウンジ】 |
|||||||||||||||||||||||||||||||||||||
範囲を指定して行ってください。 Sub ミリによる設定() On Error GoTo Trap '選択範囲の列幅と行高を設定します。 Dim colWmm As Variant Dim rowHmm As Variant Dim x As Integer, y As Long Dim CC1 As Variant Dim CC2 As Variant Dim FS As Integer 'スタイル(標準)のフォントサイズ取得 FS = Int(ActiveWorkbook.Styles("Normal").Font.Size + 0.5) '列幅用の係数を計算 CC2 = Int(FS / 6) * 1.5 + 2.25 If (FS - 1) Mod 3 = 0 Then CC1 = Int((FS - 1) / 3) * 1.5 + 0.75 Else CC1 = (Int((FS - 1) / 3) + 1) * 1.5 End If colWmm = Application.InputBox(prompt:="列幅をmm単位で入力", Type:=1) rowHmm = Application.InputBox(prompt:="行幅をmm単位で入力", Type:=1) '範囲を回す Select Case colWmm Case 1 To 4 MsgBox "列幅の5mm以下はあてにならないので中止します。", vbCritical Exit Sub Case False Exit Sub Case Else Application.ScreenUpdating = False With Selection For x = .Column To .Column + .Columns.Count - 1 ActiveSheet.Columns(x).ColumnWidth = (((colWmm / _ (1 / 72 * 25.4)) - CC2) / CC1) * 1.075 Next x For y = .Row To .Row + .Rows.Count - 1 ActiveSheet.Rows(y).RowHeight = ((rowHmm / (1 / 72 * 25.4)) + 0.35) * 1.09 Next y End With End Select Trap: End Sub このコードの使い方は、マクロの使い方(1)標準モジュールにあります。 こちらに、上記のマクロをアドイン化された物もあります。 http://birdcgi.zero.ad.jp/~zap50064/Tools.shtml |
||||||||||||||||||||||||||||||||||||||
20 | 選択範囲の4隅のセルに行番号、列番号を取得するには? http://www.ae.wakwak.com/~efc21/cgi-bin/wwwlng.cgi?print+200106/01060428.txt 「セル範囲指定した四隅の行列位置の算出方法?」 【VBAラウンジ】 |
|||||||||||||||||||||||||||||||||||||
Sub
sample() MsgBox "選択範囲の左上のセルの行数は " & Selection.Row & "行目," MsgBox "選択範囲の左上のセルの列数は " & _ Selection.Columns(1).Column & "列目" MsgBox "選択範囲の右下のセルの行数は " & _ Selection.Rows(Selection.Rows.Count).Row & "行目," MsgBox "選択範囲の右下のセルの列数は " & _ Selection.Columns(Selection.Columns.Count).Column & "列目" MsgBox "選択範囲の右上のセルの行数は " & Selection.Row & "行目," MsgBox "選択範囲の右上のセルの列数は " & _ Selection.Columns(Selection.Columns.Count).Column & "列目" MsgBox "選択範囲の左下のセルの行数は " & _ Selection.Rows(Selection.Rows.Count).Row & "行目," MsgBox "選択範囲の左下のセルの列数は " & _ Selection.Columns(1).Column & "列目" End Sub このコードの使い方は、マクロの使い方(1)標準モジュールにあります。 |