【エクセルVBAレシピ】全てのシートの拡大率を100にして、最初のシートを選択する。
Sub setZoomOfAllSheets(Optional wb As Workbook, Optional zoomMagnification As Variant = 100) If wb Is Nothing Then Set wb = ActiveWorkbook For Each ws In wb.Sheets ws.Activate ActiveWindow.Zoom = zoomMagnification Next wb.Sheets(1).Activate End Sub
wb | 編集するワークブックのオブジェクト(省略したらアクティブなウィンドウのブック) |
zoomMagnification | 拡大率(10~400、Trueなら選択されたセルが収まる用に拡大縮小、Falseなら100) |
関連:
【エクセルVBAレシピ】全てのシートでA1セルを選択状態にして、最小ノートを選択する。 - ひとふたブログ
参照:
名前付き引数と省略可能な引数について (VBA) | Microsoft Docs
Application.ActiveWorkbook プロパティ (Excel) | Microsoft Docs
Worksheet.Activate メソッド (Excel) | Microsoft Docs
Window.Zoom プロパティ (Excel) | Microsoft Docs
【エクセルVBAレシピ】指定したファイルがエクセルファイルか調べる
Function isExcelFile(filePath As String) As Boolean isExcelFile = False Dim extensions(2) As String extensions(2) = "xls" extensions(0) = "xlsx" extensions(1) = "xlsm" Set fso = CreateObject("Scripting.FileSystemObject") Dim extensionName As String: extensionName = fso.GetExtensionName(filePath) extensionName = LCase(extensionName) For Each extension In extensions If extensionName = extension Then isExcelFile = True End If Next End Function
filePath : 調べるファイルのパス。
filePath | 調べるファイルのパス。 |
FileSystemObject オブジェクト | Microsoft Docs
GetExtensionName メソッド (Visual Basic for Applications) | Microsoft Docs
docs.microsoft.com
【VBAレシピ】指定したフォルダ以下の中から、ファイル名を完全一致で検索して、ファイルパスを返す。
folderPath : 検索をするフォルダーのパス。
searchFileName : 検索するファイルの名前。拡張子含む。
見つからなければ空文字を返す。
フォルダ、サブフォルダ内に同名のファイルが複数ある場合、最初に見つかったファイルのみ返す。検索順はファイル名の昇順。
Function getFilePath(folderPath As String, searchFileName As String) As String Set fso = CreateObject("Scripting.FileSystemObject") 'folderPath内のファイルを検索 For Each file In fso.getFolder(folderPath).Files If file.Name = searchFileName Then getFilePath = file.Path Exit Function End If Next 'folderPath内のサブフォルダを再帰的に検索 For Each folder In fso.getFolder(folderPath).SubFolders Dim filePath As String filePath = getFilePath(folder.Path, searchFileName) If (filePath <> "") Then getFilePath = filePath Exit Function End If Next getFilePath = "" End Function
拡張子無しで検索するバージョン
Function getFilePathWithoutExtension(folderPath As String, searchFileName As String) As String Set fso = CreateObject("Scripting.FileSystemObject") 'folderPath内のファイルを検索 For Each file In fso.getFolder(folderPath).Files If fso.getBaseName(file.Name) = searchFileName Then 'この行だけ変更 getFilePath = file Exit Function End If Next 'folderPath内のサブフォルダを再帰的に検索 For Each folder In fso.getFolder(folderPath).SubFolders Dim filePath As String filePath = getFilePath(folder.Path, searchFileName) If (filePath <> "") Then getFilePath = filePath Exit Function End If Next getFilePath = "" End Function
ノートPC Dell G15(5211)【NVIDIA GeForce RTX 3060】と4KモニタがUSB-C接続で認識しなかったのを解決
解決方法
・NVIDIAのドライバを「GeForce Game Ready」から「NVIDIA Studio」にする。
Dellの4Kモニター(S2722QC)を買ったのですが、私のゲーミングノートPC、G15にモニタ付属のUSB-Cケーブルで接続しても認識しませんでした。
モニタの機能ボタンのどれを押しても
モニタが不良品かと思いましたが、MacBookと接続したら認識する。SurfaceGo2と接続しても認識する。
モニタではなくG15の不具合かと初期化したけど認識せず。
Windowsアップデートは全て適用済み。DellのSupportAssistでドライバも全て最新版。グラボのせいかとNVIDIAのドライバを調べたら2種類ある?
試しに現在とは別の「NVIDIA Studio」をインストールしたら認識しました。
解像度が最初、WQHD(2,560×1,440)までしか上げられなかったけど再起動したら4Kに出来ました。
ためしにドライバを再度「GeForce Game Ready」に変更したら認識して4K表示されましたがリフレッシュレートが30Hzまでしか上げられませんでした。「NVIDIA Studio」に戻したら60Hzまで上げられました。
付記
タスクバーにあるNVIDIAのアイコンから「NVIDIA GeForce Experience」を起動するとNVIDIAのアカウントを要求されます。ログインするかアカウントを作成しないと、ここからドライバのダウンロードが出来ないのですが、NVIDIAのホームページからならアカウント無しでもダウンロードできます。
ノートPCを買う時、将来マルチディスプレイにするつもりならモニタの値段も考えよう。
当たり前のことなんですが、考えが足りず失敗しました。
最近は4Kのモニタも安く買えます。
ゲーム用の120Hzのモニタも安いです。
ですが4Kかつ120Hzのモニタは倍以上の値段になります。
さらにThunderbolt対応になると、そこそこのPCが買える値段です。
今のノートPCを買った時に、将来いいモニタを繋げられるように、ちょっと値段が張るThunderbolt付きのPCを選びました。しかしThunderboltのモニタってこんなに高かったんですね。とても買えないのでオーバースペックになってしまいました。
あとThunderbolt対応のモニタってコンセントから電源取らないでいいと思ってたけど、必要なんですね。ノートPCからモニタにThunderboltで電気を送れると思ってたけど、逆でモニタからノートPCに電気を送るだけでした。
Windowsの日本語変換ショートカットキーを[Ctrl + 〇]にしたら便利
まとめ
[Ctrl + T]半角英字
[Ctrl + U]ひらがな
[Ctrl + I]カタカナ
[Ctrl + O]半角カタカナ
[Ctrl + P]全角英字
Windowsの日本語変換キーといえばファンクションキー(F6~F10)で便利なショートカットだと思っていました。
ですが最近macを使ってみて、日本語変換のショートカットキーが
[control + J]ひらがな
[control + K]カタカナ
[control + L]全角英字
[control + ;]半角英字
でとても使いやすかったです。手をホームポジションから移動しないのが快適でした。
Windowsにも同じようなショートカットキーがないか調べたところありました。
冒頭のキーになるのですが、macに比べると指の移動が大きいし、間の[Ctrl + Y]が無かったりで少しやりづらい。それでもファンクションキーよりはだいぶ押しやすくなりました。
ちなみに[Ctrl + P]は[F4]と同じで、やり直しと繰り返しです。
やり直しは[Ctrl + Z]の反対、繰り返しはエクセルで便利なやつです。