【システム】Intel(r) Iris(r) Xe Graphicsドライバ更新での文字崩れ対処
1.GPU使用率100%でフリーズ 今回は雑記っぽい話しです。 ラップトップ(ノートPC)で使用しているGPUとして、Intel(r) Iris(r) Xe Graphicsをメインに使用しているんですが、あるときから「デスクトップ ウィンドウ マネージャー」におけるGPU使用率が100%近くに上昇してPCがフリーズする現象が頻発しました。 この問題は、GPUのドライバ更新で解決するとのことでInterのサイトからIntel(r) Iris(r) Xe Graphicsの最新ドライバをダウンロードしてインストールしたのでした。 なお、参考までにサイトURLを下記に示しています。【Intel(r) Iris(r) Xe Graphicsドライバ更新】 問題はここから。 ドライバインストールにより、上記したGPUの使用率100%問題は改善されたものの、別の問題が発生しました。 具体的には、ドライバのクリーンインストールを行った影響か、Windowsのシステムフォントが変更され、全ての文字がRobotoやらNoto Sansに変換されたのでした。 文字潰れやら、やたらカクカクして判読し難いやらで、なんとか解決せねばならなくなりました。2.システムフォントの調整 結論から先に言うと、システムフォントの調整を行い、PCの再起動をかけることにより、上記の問題を解決することができました。 備忘録として下記に手順を示します:(1)[Windows]+[R]キーを押して、「ファイル名を指定して実行」画面を表示させる(2)当該画面で「control fonts」と入力して「OK」(3)ポップアップされたフォント設定画面において「ClearType テキストの調整」をクリック(4)さらに「Clear Type テキスト チューナー」という画面が表示されるので「Clear Typeを有効にする」のチェックボックスをチェックして「次へ」(5)「最も読みやすいテキスト サンプルをクリックしてください(1/5)~(5/5)」という画面が5回出てくるので、感覚で選択(6)さらに、フリーソフトの「Windows10 フォントが汚いので一発変更!」というソフトも使用 一つ改善したら、それによって別の問題が生じるというシステムあるあるですが、一つ一つ調べていけば解決できますね。
【システム】請求書作成マクロ(VBA)の公開【添付ファイルあり】
1.請求書作成マクロを公開しました 特許事務所では、種々のシステムを使って案件の管理や、書類の作成を行っています。案件管理やプロジェクト管理は、一般的な会社でも大規模な独自システムあるいは、安価なERPパッケージを使用して行っていますよね。 しかしながら、基幹システムには過不足があることはよくあることです。 弊所では、その過不足を解消するためのサブシステム作りを行っています。そこで、今回は請求書作成マクロをテスト公開してみました。 ココをクリックしてZIPファイルをダウンロードしてください。 なお、本マクロはテスト公開仕様のものですので、動作保証やこれの使用で生じた損害等は免責とさせていただければと思います。ご了承ください。2.請求書作成マクロの仕様 今回公開する請求書作成マクロ(商標等の年金納付の)は、①.xlsmファイルを起動してその中にあるボタンをクリックする、②.ファイル取り込み用のダイアログが開くので専用のデータベースファイルを取り込む、③.PDFで合計請求書とその明細が出力される、という仕様です。 xlsmファイルのフォーマットシートを調整することで、出力内容も調整することができます。 この他にも種々のマクロ(サブシステム)を構築することが可能ですので、興味がある方は弊所までご連絡ください。システム規模に応じて、サブシステムの構築・保守・点検を請け負います。 なお、請求書は、下記のような表示でPDF出力されます。【合計請求書・表紙】【明細】 3.モジュールのコード 以下は、xlsmファイル中のモジュールのコードです。参考までに公開します。Option ExplicitPublic Sub MakeInvoice()On Error Resume NextApplication.Visible = False'----------------------------------'ここからが、ファイルのインポート処理'ファイル名の取得Dim TargetDocPath As StringDim MyPath As String, wsh As VariantSet wsh = CreateObject("WScript.Shell")MyPath = wsh.SpecialFolders("Desktop") '& "\"Set wsh = Nothing'カレントディレクトリの変更ChDir ThisWorkbook.Path'PathTargetDocPath = Application.GetOpenFilename(FileFilter:="xls-xlsxファイル,*.xls*,CSVファイル,*.csv")If TargetDocPath = "False" Then'MsgBox "キャンセルされました"Application.Visible = TrueEndEnd If'------------------------------------'Open用ファイル作成Application.DisplayAlerts = False '警告を一時無視'元ファイル開いていてもよいようにコピーファイル生成Dim TemporaryFilePath2 As StringTemporaryFilePath2 = Replace(TargetDocPath, ".xlsx", "_2_" & Year(Now) & Month(Now) & Day(Now) & Hour(Now) & Minute(Now) & Second(Now) & ".xlsx")'元ファイル開いていてもコピーするDim objFSO992 As ObjectSet objFSO992 = CreateObject("Scripting.FileSystemObject")objFSO992.CopyFile TargetDocPath, TemporaryFilePath2Set objFSO992 = Nothing'コピーファイルOpenDim objExcel As ObjectSet objExcel = Application.Workbooks.Open(TemporaryFilePath2)'------------------------------------'ファイル情報取得With objExcel.Worksheets(1)'-------------------------------'頭行決定Dim objExcelFirstRow As LongobjExcelFirstRow = 1'最終行数取得Dim objExcelLastRow As LongobjExcelLastRow = .Cells(.Rows.Count, 1).End(xlUp).Row'-------------------------------'頭列決定Dim objExcelFirstCol As LongobjExcelFirstCol = 1'最終列数取得Dim objExcelLastCol As LongobjExcelLastCol = .Cells(1, .Columns.Count).End(xlToLeft).Column'-------------------------------'クライアント名称列の取得Dim TargetClientCol As IntegerIf IsError(Application.Match("経費負担先", _.Range(.Cells(1, 1), _.Cells(1, objExcelLastCol)), _0)) Then'重複行無MsgBox "クライアント名称格納列が無いため処理を終了します。"Application.Visible = TrueEndElse'重複行有TargetClientCol = Application.Match("経費負担先", _.Range(.Cells(1, 1), _.Cells(1, objExcelLastCol)), _0)End If'ソート処理(クライアント名称をprimaryとして整列させる).Range(.Cells(2, 1), _.Cells(.Rows.Count, .Columns.Count)).Sort _Key1:=.Range(Chr(TargetClientCol + 64) & 2), _Order1:=xlAscending, _Header:=xlNo'-------------------------------'二次元配列処理Dim strRowCol() As Variant'再定義ReDim strRowCol(objExcelLastRow, objExcelLastCol)'格納用Dim CRow As LongDim CCol As Long'---------------------------------------------For CRow = 1 To objExcelLastRowFor CCol = 1 To objExcelLastCol'二次元配列への格納strRowCol(CRow, CCol) = .Cells(CRow, CCol)Next CColNext CRow'---------------------------------------------'ファイル削除(Log残しのため、通常はコメントアウト)objExcel.SaveobjExcel.Close SaveChanges:=FalseKill TemporaryFilePath2End WithSet objExcel = Nothing'------------------------------------'列名の特定Dim 対象管理Col As StringDim 管理番号Col As StringDim 当所整理番号Col As StringDim 四法Col As StringDim 国コードCol As StringDim 登録番号Col As StringDim 課目Col As StringDim 事業分野Col As StringDim 請求書番号Col As StringDim 請求日Col As StringDim 経費負担先Col As StringDim 支払先Col As StringDim 納付期限日Col As StringDim 年度Col As StringDim 支払金額Col As StringDim 印紙代Col As StringDim 手数料Col As StringDim 消費税Col As […]