タイトル欄のアドレスは、エクセルファンクラブの該当する頁へのリンク先です。
詳しい事は、こちらのお願いをご覧になってください。
1
ダイアログシートどうやって作るの?
2
シート名を「ブック名○○○」に変更するには
3 同book内のsheet1に入力した場合、同時にsheet2に入力するには
4
シート名一覧のようなものを作成する方法
5 複数シートを一度に印刷
6
シートを昇順で並び替えするには?
7
シートの削除で確認メッセージがでるのを出さないようにするには
8 worksheetsとsheetsの意味は違うのでしょうか?
9 Sheetの指定について
10 ワークシートの名前をセルにいれるには
11 全ワークシートの名前を、ひとつのシートのセルにいれるには
12 現在のシート数だけループするには
13 1つのブックの中の複数のシートを統合するには?
14 存在するシートを表示するには
15 他のシートのセルに移動するには?
16 セルに入力した値を名前にして、シートを新しく挿入するには
17 シートを分割するには(ウインドウの分割)
18 場所・枚数を指定してワークシートを挿入するには
19 指定フォルダ内の全てのExcelファイルに、シートを追加するには
20 アクティブなシートの、ひとつ前のシートの値を取得するには?
1 | ダイアログシートどうやって作るの? |
Excel97、Excel2000 共通 シート見出しのところで右クリック−挿入で 「MS Excel5.0ダイアログ」を挿入。 |
|
2 | シート名を「ブック名○○○」に変更するには http://www.keep-on.com/~excelyou/2000lng1/200009/00090151.txt 「シート名を「ブック名○○○」に変更」 【編集】 |
Sub
Test() Dim MySheet As Variant Dim MyBookName As String 'アクティブなブック名を取得 MyBookName = ActiveWorkbook.Name 'ブック名の".xls"を取り除く If InStr(MyBookName, ".xls") > 0 Then MyBookName = Left(MyBookName, InStr(MyBookName, ".xls") - 1) End If '各シートに対して処理 For Each MySheet In ActiveWorkbook.Worksheets 'ブック名+シート名が31文字以下ならシート名を変更 If Len(MyBookName & MySheet.Name) <= 31 Then MySheet.Name = MyBookName & MySheet.Name End If Next MySheet End Sub このコードの使い方は、マクロの使い方(1)標準モジュールにあります。 |
|
3 | 同book内のsheet1に入力した場合、同時にsheet2に入力するには |
Sheet1はそのまま入力して、Sheet2のほうは
=Sheet1!A1 未入力の場合、0が気に入らないのであれば =IF(Sheet1!A1="","",Sheet1!A1) |
|
Excel97、Excel2000、Excel2002 共通 Sheet1がアクティブな場合、Shiftキーを押しながら、Sheet2のタブをクリックすると、 両方のシートが選択され、同時に入力できます。 解除方法は、他のシートタブをクリック。全てが選択状態なら、どれか一つをクリックします。 |
|
4 | シート名一覧のようなものを作成する方法 |
Sub
test() Dim sheetx As Object, x As Long x = ActiveCell.Row For Each sheetx In ActiveWorkbook.Worksheets ActiveSheet.Cells(x, ActiveCell.Column) = sheetx.Name x = x + 1 Next End Sub このコードの使い方は、マクロの使い方(1)標準モジュールにあります。 |
|
5 | 複数シートを一度に印刷 |
Sub
test() Sheets(Array(1, 2)).PrintOut End Sub このコードの使い方は、マクロの使い方(1)標準モジュールにあります。 |
|
6 | シートを昇順で並び替えするには? |
Sub
SheetSort() Dim i As Integer, j As Integer For i = 1 To Worksheets.Count j = i Do While j > 1 If Worksheets(j).Cells(1, 1).Value < Worksheets(j - 1).Cells(1, 1).Value Then Worksheets(j).Move before:=Worksheets(j - 1) End If j = j - 1 Loop Next i End Sub このコードの使い方は、マクロの使い方(1)標準モジュールにあります。 |
|
7 | シートの削除で確認メッセージがでるのを出さないようにするには |
Sub
test() Application.DisplayAlerts = False Sheets(1).Delete Application.DisplayAlerts = True End Sub このコードの使い方は、マクロの使い方(1)標準モジュールにあります。 |
|
8 | worksheetsとsheetsの意味は違うのでしょうか? |
worksheetsはワークシートだけですが、sheetsはダイアログシートやグラフシートが含まれます | |
9 | Sheetの指定について http://www.keep-on.com/~excelyou/2000lng4/200006/00060168.txt 「オブジェクト変数の使い方って?」 【VBA】 |
「Sheet1」のシート名を、「シート1」とした場合、シートのプロパティで、Nameは「シート1」ですが、 オブジェクト名は「Sheet1」のまま、かわりありません。 シートを指定する時、このように2種類の方法で指定できます。 Worksheets("Sheet1") 'オブジェクト(オブジェクト名) Worksheets(1) 'オブジェクト(オブジェクトのインデックス) 以下は、すべてそのシートのA1を意味します。 Sub test() |
|
10 | ワークシートの名前をセルにいれるには http://www.keep-on.com/~excelyou/2000lng1/200008/00080010.txt 「ワークシートの名前をセルにいれるには?」 【編集ラウンジ】 |
=MID(CELL("filename"),FIND("]",CELL("filename"))+1,LEN(CELL("filename"))) | |
A1セルにシート名を表示します 1.選択する先頭のシートのシート見出しをクリック 2.Shiftキーを押しながら末尾のシートのシート見出しをクリックし、各シートを作業状態にします。 3.セルA1に =MID(CELL("filename",$A$1),FIND("]",CELL("filename",$A$1))+1,31) |
|
11 | 全ワークシートの名前を、ひとつのシートのセルにいれるには http://www.keep-on.com/~excelyou/2000lng1/200008/00080010.txt 「ワークシートの名前をセルにいれるには?」 【編集ラウンジ】 |
Sub
test() Dim MySheet As Object Dim i As Integer i = 1 For Each MySheet In Sheets If MySheet.Name <> ActiveSheet.Name Then Cells(i, 2).Value = MySheet.Name i = i + 1 End If Next End Sub このコードの使い方は、マクロの使い方(1)標準モジュールにあります。 |
|
12 | 現在のシート数だけループするには |
Sub
test() Dim i As Integer For i = 1 To Worksheets.Count MsgBox "OK" Next i End Sub このコードの使い方は、マクロの使い方(1)標準モジュールにあります。 |
|
13 | 1つのブックの中の複数のシートを統合するには? |
シート名TOTALに、それ以外のシートの内容を統合します。 Sub test() Dim WS1 As Worksheet, i As Long Set WS1 = Sheets("TOTAL") WS1.Cells.ClearContents For i = 1 To Worksheets.Count If Sheets(i).Name <> "TOTAL" Then Sheets(i).Rows("1:" & Sheets(i).Range("A65536").End(xlUp).Row).Copy _ WS1.Range("A65536").End(xlUp).Offset(1) End If Next i WS1.Rows("1").Delete Shift:=xlUp Set WS1 = Nothing End Sub このコードの使い方は、マクロの使い方(1)標準モジュールにあります。 |
|
14 | 存在する全シートを表示するには http://cgi.fuji.ne.jp/~fj2094/cgi-bin1/wwwlng.cgi?print+200104/01040090.txt 「存在するシート名を確認したい」 【編集ラウンジ】 |
Sub
全シート表示() Dim i As Integer ActiveWindow.DisplayWorkbookTabs = True For i = 1 To Sheets.Count Sheets(i).Visible = True Next i End Sub このコードの使い方は、マクロの使い方(1)標準モジュールにあります。 |
|
15 | 他のシートのセルに移動するには? http://www.ae.wakwak.com/~efc21/cgi-bin/wwwlng.cgi?print+200107/01070110.txt 「ボタン一発でシート1のA1セルにもどるには?」 【VBAラウンジ】 |
あらかじめコントロールツールボックスのコマンドボタンをシートに配置しておきます。 Private Sub CommandButton1_Click() Application.Goto Sheets("Sheet1").Range("A1") End Sub このコードの使い方は、マクロの使い方(2)該当するシートのモジュールにあります。 |
|
16 | セルに入力した値を名前にして、シートを新しく挿入するには |
Sheet1のA列にシート名を入力して実行します。 Sub miko_test() Dim i As Integer, n As String, LastRow As Integer LastRow = Cells(Rows.Count, 1).End(xlUp).Row For i = LastRow To 1 Step -1 Sheets.Add Before:=Worksheets(1) n = Sheets("Sheet1").Cells(i, 1) Sheets(1).Name = n Next i End Sub このコードの使い方は、マクロの使い方(1)標準モジュールにあります。 |
|
17 | シートを分割するには(ウインドウの分割) |
分割したい場所のセル、あるいは行番号・列番号を選択し、【ウインドウ】【分割】 | |
Sub test() With ActiveWindow .SplitColumn = 6 '6列目で左右に分割 .SplitRow = 7 '7行目で上下に分割 End With ' With ActiveWindow ' .SplitColumn = 0 '左右の分割を解除 ' .SplitRow = 0 '上下の分割を解除 ' End With End Sub このコードの使い方は、マクロの使い方(1)標準モジュールにあります。 |
|
18 | 場所・枚数を指定してワークシートを挿入するには |
Sub
ワークシートの挿入() 'Sheet1のシートの前に新しいワークシートを2枚追加します。 ActiveWorkbook.Sheets.Add Before:=Worksheets("Sheet1"), Count:=2 'Sheet1のシートの後に新しいワークシートを2枚追加します。 ActiveWorkbook.Sheets.Add After:=Worksheets("Sheet1"), Count:=2 '最後のシートの前に新しいワークシートを1枚追加します。 ActiveWorkbook.Sheets.Add Before:=Worksheets(Worksheets.Count) '最後のシートの後に新しいワークシートを1枚追加します。 ActiveWorkbook.Sheets.Add After:=Worksheets(Worksheets.Count) '一番左(グラフシート含む)のシートの前に新しいワークシートを1枚追加します。 ActiveWorkbook.Sheets.Add Before:=Sheets(1) '一番左(グラフシート含む)のシートの後に新しいワークシートを1枚追加します。 ActiveWorkbook.Sheets.Add After:=Sheets(1) '一番左(グラフシート除く)のシートの前に新しいワークシートを1枚追加します。 ActiveWorkbook.Sheets.Add Before:=Worksheets(1) '一番左(グラフシート除く)のシートの後に新しいワークシートを1枚追加します。 ActiveWorkbook.Sheets.Add After:=Worksheets(1) End Sub このコードの使い方は、マクロの使い方(1)標準モジュールにあります。 |
|
19 | 指定フォルダ内の全てのExcelファイルに、シートを追加するには |
My Documentsの中の全てのExcelファイルに「新規シート」というシートを追加します Sub シート追加() Dim BookName As String Dim PathName As String PathName = "C:\My Documents\" 'ファイルの入っているフォルダを指定 BookName = Dir(PathName & "*.xls") '処理するファイルはExcelのファイル(拡張子xls) Do Until BookName = "" Workbooks.Open PathName & BookName 'ファイルを開く Sheets.Add Before:=Sheets(1) 'シートの追加 Sheets(1).Name = "新規シート" '追加したシートの名前を変更 Workbooks(BookName).Save 'ファイルを上書き保存 Workbooks(BookName).Close 'ファイルを閉じる BookName = Dir() 'ファイル名をクリア Loop End Sub このコードの使い方は、マクロの使い方(1)標準モジュールにあります。 |
|
20 | アクティブなシートの、ひとつ前のシートの値を取得するには? http://www.ae.wakwak.com/~efc21/cgi-bin/wwwlng.cgi?print+200112/01120106.txt 「1ヶ月〆の出納帳を作成してるんですが、前月繰越金をマクロで入れたいんですが」 【VBAラウンジ】 |
Sub test() With ActiveSheet If .Index = 1 Then Exit Sub .Range("E1").Value = .Previous.Cells(Rows.Count, "E").End(xlUp).Value End With End Sub このコードの使い方は、マクロの使い方(1)標準モジュールにあります。 |
|
Previousプロパティは、一つ前のシート、ひとつ左のセルを返します Sub test() MsgBox ActiveSheet.Previous.Name 'ひとつまえのシート名 MsgBox ActiveCell.Previous.Address 'ひとつ左のセル番地 End Sub このコードの使い方は、マクロの使い方(1)標準モジュールにあります。 |