エクセル.Visible = True ' 表示 エクセル.Visible = False ' 非表示
エクセル.WindowState = xlMaximized ' 最大化 エクセル.WindowState = xlMinimized ' 最小化 エクセル.WindowState = xlNormal ' 通常
定数 | 表示状態 |
xlNormal | 通常表示 |
xlMaximized | 最大化表示 |
xlMinimized | 最小化表示 |
Workbooks(ThisWorkbook.Name).Activate
ThisWorkbook
ThisWorkbook.FullName
ThisWorkbook.Path
ThisWorkbook.Name
ブック.SaveAs Filename:= "ファイル名(フルパス)"
Workbooks("ブック名").WindowState = 定数
定数 | 表示状態 |
xlNormal | 通常表示 |
xlMaximized | 最大化表示 |
xlMinimized | 最小化表示 |
Workbooks(1).Activate ActiveWindow.WindowState = xlMaximized
Dim window1 As Window Set window1 = Windows("Book1") window1.WindowState = xlMaximized
Dim window1 As Window Set window1 = Windows(1) window1.WindowState = xlMaximized
Worksheets(1).Activate Sheets(1).Activate
ActiveSheet
ActiveSheet.Name
Worksheets.Add after:=Worksheets(Worksheets.Count)
Set 追加したシート = Worksheets.Add(after:=Worksheets(1))
Worksheets("Sheet2").Copy After:=Workbooks("Book2").Worksheets("Sheet1")
シート.Columns("C:C").Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove
シート.Range("C:C").Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove
Columns("C:C").EntireColumn.Hidden = True
Range("A1").Value
Range("A1").Text
CurrentRegionプロパティは空白のセルで囲まれた範囲を読み取り、参照するプロパティです。
Range("A1").CurrentRegion
Range("A2").CurrentRegion.Select
Cells.Copy
Selection.SpecialCells(xlCellTypeVisible).Copy
ActiveSheet.Paste
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
シート.Range("A1").PasteSpecial Paste:=xlPasteValues
シート.Cells.PasteSpecial
Set オブジェクト = Range("テーブル名")
表の左上を (1, 1) として、指定し取得できます。
なお、表の見出し部分は含まれません。ただし、行を「0」と指定することにより、表の見出しを取得することが可能です。
また、「Range」のデフォルトメソッドは「Cells」なので、「Cells」は省略できます。
Range("テーブル名").Cells(行番号, 列番号)
Range("テーブル名")(行番号, 列番号)
Set オブジェクト = Range("テーブル名") オブジェクト(行番号, 列番号)
Range("テーブル名").Rows.Count
Dim 行番号 As Long For 行番号 = 1 To 値段表.Rows.Count ' ここで行ごとの処理を行います。 Next
Range("テーブル名").Columns.Count
Set オブジェクト = Range("テーブル名[見出し名]")
Range("テーブル名[見出し名]").Cells(行番号, 列番号)
なお、取得した範囲は1列に限定されているので、セルを取得する場合は列番号が省略できます。
Range("テーブル名[見出し名]").Cells(行番号)
Range("テーブル名[見出し名]").SpecialCells(xlCellTypeVisible).Copy Range("A1").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
Range("A1").CurrentRegion.AutoFilter Field:=1, Criteria1:="<>0"
または
Range("A1").AutoFilter Field:=1, Criteria1:="<>0"
配列形式の場合、非表示にする対象を直接選択することはできません。
よって、非表示にする対象を選択したい場合は、全ての値から非表示にする値を削除した配列を作成する必要があります。
シート.Range("A1").CurrentRegion.AutoFilter Field:=1, Criteria1:=配列, Operator:=xlFilterValues
シート.Range("A1").CurrentRegion.AutoFilter Field:=1, Criteria1:=Array("値1", "値2", "値3"), Operator:=xlFilterValues
ActiveSheet.Shapes("オートシェイプ名") ActiveSheet.Shapes.Range(Array("オートシェイプ名"))
ActiveSheet.Shapes.Range(Array("オートシェイプ名")).Select Selection.ShapeRange.ShapeStyle = msoShapeStylePreset28
ThisWorkbook.Sheets(1).Shapes("オートシェイプ名").ShapeStyle = msoShapeStylePreset28
ThisWorkbook.Sheets(1).Shapes("オートシェイプ名").ShapeRange.ShapeStyle = msoShapeStylePreset28
Msgbox Date '2014/04/15
Month(Date)
Day(Date)
DateAdd(interval, number, date)
なお、DateAdd関数は無効な日付を返しません。(下記参考)
DateAdd("m", 1, "2014/01/31") '2014/02/28
MsgBox Format(Date, "yyyymmdd")
セルにSUM関数を出力したい場合はR1C1形式にすると出力し易いことが多いです。なお、R1C1形式で記述しても出力結果はA1形式で出力されます。
ActiveCell.FormulaR1C1 = "=SUM(RC[-4]:RC[-1])"
Columns("B:B").EntireColumn.AutoFit
シート.Columns("B:B").ColumnWidth = 12.34
シート.Cells.EntireRow.AutoFit
ret = ShowWindow(IE.hWnd, 3) ’最大化
ret = ShowWindow(IE.hWnd, 2) ’最小化
Private Declare Function GetForegroundWindow Lib "user32" Alias "GetForegroundWindow" () As Long
Dim ハンドル As Long: ハンドル = GetForegroundWindow
Private Declare Function WindowFromPoint Lib "user32" (ByVal xPoint As Long, ByVal yPoint As Long) As Long
Dim ハンドル As Long: ハンドル = WindowFromPoint(0, 0)
Private Declare Function GetParent Lib "user32" Alias "GetParent" (ByVal hwnd As Long) As Long
Private Declare Function EnumWindows Lib "user32" (ByVal lpEnumFunc As Long, ByVal lParam As Long) As Long
Private Declare Function GetNextWindow Lib "user32" Alias "GetWindow" (ByVal hwnd As Long, ByVal wFlag As Long) As Long
Private Declare Function GetWindowText Lib "user32" Alias "GetWindowTextA" (ByVal hwnd As Long, ByVal lpString As String, ByVal cch As Long) As Long
引数 | 説明 |
hwnd | ウィンドウテキストの取得元ウィンドウを表すウィンドウハンドル |
lpString | ウィンドウテキストを格納するバッファ |
cch | ウィンドウテキストを格納するバッファのサイズ |
Function ウィンドウテキストを取得() ハンドル = GetForegroundWindow テキスト格納バッファ = String(100, Chr(0)) GetWindowText ハンドル, テキスト格納バッファ, Len(テキスト格納バッファ) ウィンドウテキストを取得 = Left(テキスト格納バッファ, InStr(1, テキスト格納バッファ, Chr(0)) - 1) End Function
Private Declare Function SetWindowText Lib "user32" Alias "SetWindowTextA" (ByVal hwnd As Long, ByVal lpString As String) As Long
Private Declare Function MoveWindow Lib "user32" Alias "MoveWindow" (ByVal hwnd As Long, ByVal x As Long, ByVal y As Long, ByVal nWidth As Long, ByVal nHeight As Long, ByVal bRepaint As Long) As Long
Private Declare Function DestroyWindow Lib "user32" Alias "DestroyWindow" (ByVal hwnd As Long) As Long
BitBlt関数を使う。
'座標でハンドルを取得 Private Declare Function WindowFromPoint Lib "user32" (ByVal xPoint As Long, ByVal yPoint As Long) As Long 'タイトルバーの文字列を変更 Private Declare Function SetWindowText Lib "user32" Alias "SetWindowTextA" (ByVal hwnd As Long, ByVal lpString As String) As Long Sub 座標によるハンドル取得() Dim ハンドル As Long: ハンドル = WindowFromPoint(0, 0) Dim Ret As Long: Ret = SetWindowText(ハンドル, "新しいウィンドウテキスト") End Sub
Function コマンドプロンプト(cmd As String) As String Dim WSH As Object: Set WSH = CreateObject("Wscript.Shell") Dim wExec As Object: Set wExec = WSH.Exec("%ComSpec% /c " & cmd) Do While wExec.Status = 0 DoEvents Loop コマンドプロンプト = wExec.StdOut.ReadAll Set wExec = Nothing Set WSH = Nothing End Function
Public Const アタッシェケース本体 = "D:\atcs2828\AttacheCase.exe" Sub アタッシェケース暗号化(入力パス As String, 出力パス As String, パスワード As String) ' 入力パスの末尾に区切り記号が含まれていたら削除する If Right(入力パス, 1) = "\" Or Right(入力パス, 1) = "/" Then 入力パス = Left(入力パス, Len(入力パス) - 1) End If ' 出力パスの末尾に区切り記号が含まれていたら削除する If Right(出力パス, 1) = "\" Or Right(出力パス, 1) = "/" Then 出力パス = Left(出力パス, Len(出力パス) - 1) End If Dim Ret As String: Ret = コマンドプロンプト(アタッシェケース本体 & " " & 入力パス & " /saveto=" & """" & 出力パス & """" & " /exit=1" & " /p=" & パスワード) End Sub
Sub リモートデスクトップ(ByVal 対象PC As String, Optional ByVal exeファイル As String = "mstsc.exe") 'C:\Windows\System32\mstsc.exe Call コマンドプロンプト(exeファイル & " /v:" & 対象PC) End Sub
Call コマンドプロンプト("C:\Windows\System32\mstsc.exe /v:PC名またはIPアドレス")
「Option Base」を指定すると配列の開始番号を変更することができます。
例)「Option Base 1」を記述し、Dim A(5) As Integer と宣言すると、A(1)~A(5)の5要素となります。
なお、「Option Base」はプロシージャ内には記述できません。
範囲が1列なら列が省略されているとみなして、1として実行される Range(5, 1) と同様 範囲が2列以上なら行が省略されているとみなして、1として実行される Range(1, 5) と同様
シート.Activate シート.Range("A1").Select