【エクセル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

参考
docs.microsoft.com

ノートPC Dell G15(5211)【NVIDIA GeForce RTX 3060】と4KモニタがUSB-C接続で認識しなかったのを解決

解決方法

NVIDIAのドライバを「GeForce Game Ready」から「NVIDIA Studio」にする。

GeForce 公式ドライバー

 

 

f:id:hitofuta:20211001004812p:plain

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のホームページからならアカウント無しでもダウンロードできます。

 

f:id:hitofuta:20211001004946p:plain

NVIDIA GeForce Experience」からインストール

ノートPCを買う時、将来マルチディスプレイにするつもりならモニタの値段も考えよう。

当たり前のことなんですが、考えが足りず失敗しました。

 

最近は4Kのモニタも安く買えます。

ゲーム用の120Hzのモニタも安いです。

ですが4Kかつ120Hzのモニタは倍以上の値段になります。

さらにThunderbolt対応になると、そこそこのPCが買える値段です。

 

今のノートPCを買った時に、将来いいモニタを繋げられるように、ちょっと値段が張るThunderbolt付きのPCを選びました。しかしThunderboltのモニタってこんなに高かったんですね。とても買えないのでオーバースペックになってしまいました。

 

あとThunderbolt対応のモニタってコンセントから電源取らないでいいと思ってたけど、必要なんですね。ノートPCからモニタにThunderboltで電気を送れると思ってたけど、逆でモニタからノートPCに電気を送るだけでした。

レオパレスの椅子にはハニカム構造のゲルクッションが快適。

今年、最も生産性を上げたアイテムです。

今まで買わなかった事を後悔。すごく快適で作業が捗ります。

 

 

1日座ったせいか少し形が崩れています。

 

仕事の都合で出張が多く、よくレオパレスを利用するのですが、備え付けのパイプ椅子が固く、すぐお尻が痛くなるので机での作業が長続きしませんでした。

ニトリでクッションを買ってもあまり変わらず。

ですがこのゲルクッションを使ってから集中力も作業効率も段違いによくなりました。

 

出張が多く荷物が増やせない人、レオパレス在住の人は絶対にお勧めです。

 

Windowsの日本語変換ショートカットキーを[Ctrl + 〇]にしたら便利

まとめ

[Ctrl + T]半角英字

[Ctrl + U]ひらがな

[Ctrl + I]カタカナ

[Ctrl + O]半角カタカナ

[Ctrl + P]全角英字

f:id:hitofuta:20210926160522j:plain

 

Windowsの日本語変換キーといえばファンクションキー(F6~F10)で便利なショートカットだと思っていました。

ですが最近macを使ってみて、日本語変換のショートカットキーが

[control + J]ひらがな

[control + K]カタカナ

[control + L]全角英字

[control + ;]半角英字

でとても使いやすかったです。手をホームポジションから移動しないのが快適でした。

 

Windowsにも同じようなショートカットキーがないか調べたところありました。

冒頭のキーになるのですが、macに比べると指の移動が大きいし、間の[Ctrl + Y]が無かったりで少しやりづらい。それでもファンクションキーよりはだいぶ押しやすくなりました。

ちなみに[Ctrl + P]は[F4]と同じで、やり直しと繰り返しです。

やり直しは[Ctrl + Z]の反対、繰り返しはエクセルで便利なやつです。