Excelノート 4-1  シート

HOME  検索  索引  もくじ  関数目次ージへ        次ページへ

タイトル欄のアドレスは、エクセルファンクラブの該当する頁へのリンク先です。
詳しい事は、こちらの
お願いをご覧になってください。

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を意味します。
 Sheets(1).Range("A1")              '左から1枚目のシート。グラフシートを含みます。
 Sheets("Sheet1").Range("A1")       'オブジェクトのNameプロパティ
 Worksheets(1).Range("A1")           '左から1枚目のシート。グラフシートを含みません。
 Worksheets("Sheet1").Range("A1")    'オブジェクトのNameプロパティ
 Sheet3.Range("A1")                'オブジェクト名
ただし、Worksheetsは、ワークシートのみ、Sheetsは、グラフシートを含みます。

Sub test()
 MsgBox ActiveSheet.Name      
'シートの名前
 MsgBox ActiveSheet.Index      
'シートの左からの順番
 MsgBox ActiveSheet.CodeName  
'シートのオブジェクト名。
End Sub

  このコードの使い方は、マクロの使い方(1)標準モジュールにあります。

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)標準モジュールにあります。

HOME  検索  索引  もくじ  関数目次ージへ        次ページへ

このページのTOPへ

 

 

 

inserted by FC2 system