BEAGLE-HC 医薬品、医療機器の研究・開発 ポータルサイト
 現在位置 : HOME > ITの活用 プログラミング > Excel コードライブラリアン(ブック・シート操作)
くすりのこと
 治療薬の最前線
データブック
 ヘルスケア市場
 データブック
 (売上ランキング)
ニュース
 企業ニュース
 (パイプラインニュース)
 (財務・決算ニュース)
 (M&Aニュース)
 メディアニュース
ITの活用
 バリデーション
 セキュリティ
 WORD文書の作成
 プログラミング
 (Word/VBA)
 (Excel/VBA)
 (Access/VBA)
 (SAS)
 (SQL)
イベント
 イベントカレンダ
製薬会社研究
 製薬会社
 製薬会社研究
 決算短信一覧
 
 
 
記述の規則 開始・終了処理 プログラム制御 ファイル操作
ワークブック・シート操作 セル・行・列の操作 セルの書式設定 関数
ウィンドウ操作 グラフ操作 データベースの操作 印刷
サンプルプログラム      
 
Page Index
●Workbook、Worksheetオブジェクトの参照
●指定したシートをアクティブにする
●ワークシート名を参照・設定する
●ワークシートを選択する
●シートをプロテクトする
●ワークシートの内容をクリアする
●ワークシートを追加する
●ワークシートが存在するか調べる
●ワークシートを削除する
●ワークシートをコピーする
●前後のシートに移動する
●Sheet2 および Sheet3 のデータをSUM 関数を使って Sheet1 に統合する
●罫線を引く
●ユーザーフォーム(ダイアログシート)を表示する
●ワークシートで使われたセル範囲を把握する
●ワークシートを表示(非表示)する
●ワークシートをソートする
●ワークシートのイベント
 
本章では、ワークブックやシートの操作に関するコードサンプルを例示します。
 
Workbook、Worksheetオブジェクトの参照 ↑ このページの最初へ
名前またはインデックス番号による参照
 Workbooks("Book1")
 Worksheets("Sheet1")
 Worksheets(1)   '1番目のシート
アクティブなオブジェクトの参照
 ActiveWorkbook.Name
 ActiveSheet.Range("A1")
現在実行中のマクロが記述されているオブジェクトの参照
 ThisWorkbook.Name
 ThisWorkSheet.Range("A1")
※マクロの中でブックの切り替えを行うようなときには、ActiveWorkbookとThisWorkbookは別のものを指す
※※Worksheetsをsheetsと表現しても良い
 
指定したシートをアクティブにする ↑ このページの最初へ
アクティブにするとは、マウスやキーボードでで「シートを選択する」という操作のことです。

Object.Activate

<記述例>
Worksheets("Sheet1").Activate
Worksheets(1).Activate
 
ワークシート名を参照・設定する ↑ このページの最初へ
Name = "ワークシート名"

<記述例>
Worksheets("Sheet1").Name = "月次集計"
 
ワークシートを選択する ↑ このページの最初へ
Activateメソッドと違い、複数のワークシートを選択状態にでき、選択されたシートはすべてアクティブシートになります。

Object.Select(Replace)

<記述例>
Worksheets("Sheet3").Select

<応用例 Sheet3とSheet4を選択して、ワークシートの枠線を消す>
複数のシートを選択するには、Array関数を使用します
Worksheets(Array("Sheet3", "Sheet4")).Select
ActiveWindow.DisplayGridlines = False
 
シートをプロテクトする ↑ このページの最初へ
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
 
ワークシートの内容をクリアする ↑ このページの最初へ
Worksheets("Sheet1").UsedRange.Clear
 
ワークシートを追加する ↑ このページの最初へ
Worksheets.Add (Before, After, Count, Type)

<記述例>
Worksheets.Add
Worksheets.Add(After:=Worksheets("Sheet2"))
Set NewWS = Worksheets.Add
Worksheets.Add Count:=3       '3シート追加

最後のシートの前に新しいワークシートを追加する
ActiveWorkbook.Sheets.Add Before:=Worksheets(Worksheets.Count)
 
ワークシートが存在するか調べる ↑ このページの最初へ
'ワークブックが存在するか調べる
Dim wb As Workbook, flag As Boolean
For Each wb In Workbooks
  If wb.Name = "Book1.xls" Then ・・・・・・
Next wb

'ワークシートが存在するか調べる
Dim ws As Worksheet, flag As Boolean
For Each ws In Worksheets
  If ws.Name = "・・・・・" Then ・・・・・
Next ws
 
ワークシートを削除する ↑ このページの最初へ
object.Delete

<記述例>
Activesheet.Delete
Worksheets("追加シート").Delete
 
ワークシートをコピーする ↑ このページの最初へ
Object.Copy(Before, After)

<記述例>
'ワークシートSheet1をコピーしSheet2にコピーする
 Worksheets("Sheet1").Select
 Cells.Select
 Application.CutCopyMode = False
 Selection.Copy

 Worksheets("Sheet2").Select
 Cells.Select
 Selection.PasteSpecial Paste:=xlAll, Operation:=xlNone, SkipBlanks:=False, Transpose:=False 
'貼り付け

'ブック間でワークシートをコピーする
Workbooks("99-03.xls").Worksheets("Sheet1").Copy After:=Workbooks("Book4.xls").Worksheets("Sheet2")

新しいブックを作成しそこにワークシートSheet1をコピーする
引数「Before」「After」を省略すると、新しいブックが作成されてそこにワークシートがコピーされる。
Worksheets("Sheet1").Copy
 
前後のシートに移動する ↑ このページの最初へ
Sub Forwardsheet()
Dim Maxsheets As Integer
Dim i As Integer
'最大シート数を求める
Maxsheets = ActiveWorkbook.Worksheets.Count
'カレントのシート番号を求める
For i = 1 To Maxsheets
If Worksheets(i).Name = ActiveSheet.Name Then Exit For
Next i
'次の選択可能なシートを求める
For i = i To Maxsheets
If i < Maxsheets Then
If Worksheets(i + 1).Visible = True Then Exit For
End If
Next i
'シートを進める
If i < Maxsheets Then Worksheets(i + 1).Select
End Sub

Sub Backwardsheet()
Dim Maxsheets As Integer
Dim i As Integer
'最大シート数を求める
Maxsheets = ActiveWorkbook.Worksheets.Count
'カレントのシート番号を求める
For i = 1 To Maxsheets
If Worksheets(i).Name = ActiveSheet.Name Then Exit For
Next i
'次の選択可能なシートを求める
For i = i To 1 Step -1
If i > 1 Then
If Worksheets(i - 1).Visible = True Then Exit For
End If
Next i
'シートを戻す
If i > 1 Then Worksheets(i - 1).Select
End Sub
 
Sheet2 および Sheet3 のデータをSUM 関数を使って Sheet1 に統合する ↑ このページの最初へ
Worksheets("Sheet1").Range("A1").Consolidate _
sources:=Array("Sheet2!R1C1:R37C6", "Sheet3!R1C1:R37C6"), _
Function:=xlSum
 
罫線を引く ↑ このページの最初へ
Tate = ActiveCell.Row

Range(Cells(Tate + 1, 1), Cells(Tate + 5, 68)).Select
With Selection.Borders(xlLeft)
 .Weight = xlThin
 .ColorIndex = xlAutomatic
End With

With Selection.Borders(xlRight)
 .Weight = xlThin
 .ColorIndex = xlAutomatic
End With

Selection.Borders(xlTop).LineStyle = xlNone
With Selection.Borders(xlBottom)
 .Weight = xlThin
 .ColorIndex = xlAutomatic
End With
Selection.BorderAround LineStyle:=xlNone
 
ユーザーフォーム(ダイアログシート)を表示する ↑ このページの最初へ
DialogSheets("Dialog1").Show

DialogSheets("Dialog1").Hide
 
ワークシートで使われたセル範囲を把握する ↑ このページの最初へ
Object.UsedRange

<記述例>
ActiveSheet.UsedRange.Select
 
ワークシートを表示(非表示)する ↑ このページの最初へ
Object.Visible = 論理値

<記述例>
Worksheets("Sheet1").Visible = True
 
ワークシートをソートする ↑ このページの最初へ
'A列からF列を順ソートする。ソートキーはA列とB列
Sheets("Sheet1").Select
Columns("A:F").Select
Selection.Sort Key1:=Range("A1"), Order1:=xlAscending, Key2:=Range("B1"), _
  Order2:=xlAscending, Header:=xlGuess, OrderCustom:=1, MatchCase:=False, _
  Orientation:=xlTopToBottom, SortMethod:=xlPinYin, DataOption1:=xlSortNormal, _
  DataOption2:=xlSortNormal
 
ワークシートのイベント ↑ このページの最初へ
イベントプロシージャ 内容
Activate シートがアクティブになったときに発生します。
構文:Private Sub object_Activate()
Deactivate シートがアクティブでなくなったときに発生します。
構文:Private Sub object_Deactivate()
Change セルが変更された時に発生します。
SelectionChange 選択範囲が変わった時に発生します
BeforeDoubleClick セルがダブルクリックされた時に発生します。
BeforeRightClick セルが右クリックされた時に発生します。
Calculate シートが再計算された時に発生します。
FollowHyperlink
(Excel2000で追加)
ハイパーリンクがクリックされた時に発生します。
PivotTableUpdate ピボットテーブル

↑ このページの最初へ

   ご意見・ご感想をお寄せください。 ‖ お問い合わせはこちらから ‖ このサイトについて           サイトマップ  ‖
  Copyright 2006 - 2013 uTRAM Corp. All Rights Reserved
 
PHARCIS(ヘルスケア最新情報提供)
Facebook for PHARCIS
ClinMark8
アクセスランキング
(2013年5月)

1位 企業ニュース
2位 売上ランキング
3位 メディアニュース
4位 製薬会社
5位 治療薬の最前線
6位 決算短信一覧
7位 データブック
8位 製薬会社研究
9位 イベントカレンダ
10位 パイプラインニュース