|
Sample Macro 開始終了 [応用型] |
 |
|
|
|
1) 最近使用したファイルリスト |
 |
 |
'=========================================================================================
Sub 最近使用したファイルリスト内のファイル数を取得して表示する()
ファイル数 = Application.RecentFiles.Maximum
MsgBox "最近使用したファイルリスト内のファイル数: " & ファイル数
End Sub
'-----------------------------------------------------------------------------------------
Sub 最近使用したファイルリスト内の1番目のファイルのファイル名を表示する()
ファイル名 = Application.RecentFiles(1).Name '※1
MsgBox "最近使用したファイルリスト内の1番目のファイルのファイル名: " & ファイル名
End Sub
'-----------------------------------------------------------------------------------------
Sub 最近使用したファイルリスト内の1番目のファイルへの絶対パスを表示する()
絶対パス = Application.RecentFiles(1).Path
MsgBox "最近使用したファイルリスト内の1番目のファイルへの絶対パス: " & 絶対パス
End Sub
'-----------------------------------------------------------------------------------------
Private Sub 最近使用したファイルリストのファイル数を設定する()
Application.RecentFiles.Maximum = 4
End Sub
'-----------------------------------------------------------------------------------------
Sub 最近使用したファイルリストの3番目のファイルを開く()
Application.RecentFiles.Item(3).Open
End Sub
'-----------------------------------------------------------------------------------------
Sub 最近使用したファイルリストの内容をワークシートにセットする()
Dim ファイル数 As Long
Dim 行 As Long
'
ファイル数 = Application.RecentFiles.Maximum '最近使用したファイルリスト内のファイル数
Sheets.Add 'ワークシートを挿入する
'
For 行 = 1 To ファイル数
Cells(行, 1) = 行
Cells(行, 2) = Application.RecentFiles(行).Name 'ファイル名
Cells(行, 3) = Application.RecentFiles(行).Path '絶対パス
Next
'
Columns("A:C").EntireColumn.AutoFit '列幅を最適化する
Range("A1").Select 'カーソルを左上端へ
メッセージ = "最近使用したファイルリストの内容を、ワークシートにセットしました"
MsgBox メッセージ, vbInformation, "すぐマク"
Application.DisplayAlerts = False '確認メッセージを表示しない
ActiveWindow.SelectedSheets.Delete 'ワークシートを削除する
Application.DisplayAlerts = True '確認メッセージを表示する
End Sub
'=========================================================================================
<コメント>
※1 ファイルリストにパスを含んだファイル名が表示されている場合は、それが取得される
※2 「最近使用したファイルリスト」とは[ファイル]メニューをクリックしたときに表示されるドロッ
プダウンメニューの下部のリストのことである
|
2) コード実行中のブック以外のブックを閉じる |
 |
 |
'=========================================================================================
Sub コード実行中のブック以外のブックを閉じる()
For Each 要素 In Workbooks '各ワークブックに対して反復処理する
If 要素.Name <> ThisWorkbook.Name Then 'コード実行中のブック名と違うなら
要素.Close savechanges:=False '保存しないで閉じる ※1
End If
Next '繰り返す
End Sub
'=========================================================================================
<コメント>
※1 ブックに変更があり、同じブックが他のウィンドウで表示されていないときに、Closeメソッドの
引数 savechangesの値を省略するとファイル名の入力を促すダイアログボックスが表示され、
Trueを指定すると保存される
|
3) フォルダを開く |
 |
 |
'=========================================================================================
Sub フォルダを開く()
絶対パス = ActiveWorkbook.Path 'パスを取得する
MsgBox "OKボタンを押すとフォルダ内容が表示されますから、" & Chr(13) & _
"開きたいファイルを選んでダブルクリックして下さい。"
タスクID = Shell("explorer.exe " & 絶対パス, vbNormalFocus) 'フォルダを開く '※1、2、3
If タスクID = 0 Then MsgBox "起動に失敗しました"
End Sub
'=========================================================================================
<コメント>
※1 プログラムの実行に問題が発生した場合、タスクIDには 0 が返る
※2 Shell関数の名前付き引数 windowstyleの詳細は こちら
※3 Maintoshでの指定方法は異なる
|
4) ドライブの一覧表を作成する |
 |
 |
'=========================================================================================
Option Explicit
Dim ファイルシステム As Object
Dim ドライブコレクション As Object
Dim メンバ As Object
Dim ドライブ文字 As String
Dim タイプ As String
Dim 装置名 As String
Dim 行 As Integer
'-----------------------------------------------------------------------------------------
Sub ドライブの一覧表を作成する()
Worksheets("SSS").Activate '※1
Cells.Select
Selection.Clear
Range("A1").Value = "ドライブ文字"
Range("B1").Value = "ドライブタイプ"
Range("C1").Value = "装置名"
行 = 1
'
'ファイルシステムへの参照を作成する
Set ファイルシステム = CreateObject("Scripting.FileSystemObject")
Set ドライブコレクション = ファイルシステム.Drives '利用できるDrivesコレクションを取得
For Each メンバ In ドライブコレクション 'Drivesコレクションの各メンバに繰り返し処理
ドライブ文字 = メンバ.DriveLetter 'ドライブ文字を取得する
タイプ = メンバ.DriveType 'ドライブタイプを取得する
ドライブタイプを装置名に変換する
行 = 行 + 1
Cells(行, 1) = ドライブ文字
Cells(行, 2) = タイプ
Cells(行, 3) = 装置名
Next
'
Columns("A:C").EntireColumn.AutoFit
Range("A1").Select
End Sub
'-----------------------------------------------------------------------------------------
Private Sub ドライブタイプを装置名に変換する()
Select Case タイプ
Case 0
装置名 = "不明"
Case 1
装置名 = "リムーバブルディスク"
Case 2
装置名 = "ハードディスク"
Case 3
装置名 = "ネットワークドライブ"
Case 4
装置名 = "CD-ROM"
Case 5
装置名 = "RAMディスク"
End Select
End Sub
'=========================================================================================
<コメント>
※1 SSSにはシート名を記入
サンプルブックのダウンロードは ここをクリック (YNxv251_FileSystem_Drives.xls 40KB) ※ 一旦、ブックをハードディスクに保存し、開き直してから実行してください。
|
|
5) 環境変数の一覧表を作成する |
 |
 |
'=========================================================================================
Sub 環境変数の一覧表を作成する()
Cells.Clear
Range("A1").Value = "順番"
Range("B1").Value = "環境変数の名前と値"
I = 1
Do
Range("A" & I + 1).Value = I
Range("B" & I + 1).Value = Environ(I) '環境変数の名前と値を取得
I = I + 1
Loop Until Environ(I) = "" '※1
Columns("A:B").EntireColumn.AutoFit
End Sub
'=========================================================================================
<コメント>
※1 指定した番号が存在しなければ長さ0の文字列("")が返る
|
6) ファイルの存在を調べる |
 |
 |
'=========================================================================================
Sub ファイルの存在を調べる()
ファイル名 = "BBB.xls" '※1
フォルダパス = "C:\FFF" '※2
フルパス = フォルダパス & "\" & ファイル名
If Dir(フルパス) = "" Then
MsgBox フォルダパス & " には " & ファイル名 & " は存在しません。"
Else
MsgBox フォルダパス & " に " & ファイル名 & " が存在します。"
End If
End Sub
'=========================================================================================
<コメント>
'※1 BBB.xlsにはファイル名(拡張子付き)を記入
'※2 フォルダパスを記入
|