Windows 不要サービス停止

Officeに関わるものを停止するとOfficeが立ち上がらないことがある。

 

Excel 不具合関連

毎回検索しているのでメモ。

・アプリの修復実行

これで直ったことはないので、あまり実行しない。

アプリの修復はライセンス認証が発生するので、プロダクトキーが手元にあるか確認してから実行。

・Excelの更新を実行
ファイル>アカウント>Office更新プログラム

・マルチスレッド、グラフィックアクセラレータを止めると環境によっては安定する場合がある。通常は止めない。

ファイル>オプション>詳細設定>表示
ハードウェアグラフィックアクセラレータを無効にする(環境保存)

ファイル>オプション>詳細設定>全般
マルチスレッド処理を有効にする(環境保存)

ファイル>オプション>詳細設定>数式
マルチスレッド計算を行う
(ブック依存なのでブック保存が必要)

・ファイル(ブック)が開かない場合

タスクマネージャーからExcelを終了すると直ることが多い。

・VBAが実行できない(保護ビュー)

ファイル>オプション>トラストセンター>トラストセンターの設定
保護ビュー

保護ビューの項目をすべて外す。

・VBAが実行できない(マクロブロック)

オプション>トラストセンター>トラストセンターの設定>マクロの設定
VBAマクロを有効にする

このファイルのソースが信頼できないため、Microsoftによりマクロの実行がブロックされました。
と表示された場合。

・ローカルにあるファイルなら、
ファイル右クリック>プロパティ>許可するにチェックしてOK

・オンライン(共有)にあるファイルなら、
Excelオプション>トラストセンター>トラストセンターの設定>信頼できる場所>新しい場所の追加
からブックの保存してある場所を追加する。

ここはIPアドレスは追加できず、ホスト名で登録しても、IPアドレスでアクセスするとブロックされる。

——————————————————–

IPアドレスしかアクセスできない場所の場合

control>インターネットオプション>セキュリティ>信頼済みサイト>サイト
に登録する。

2023年5月現在。inetcpl.cplから信頼済みサイトに登録してもipアドレスだとアクセスできない場合がある。その場合~

C:\Windows\System32\drivers\etc\hosts
を管理者で開く。

powershell -NoProfile -ExecutionPolicy unrestricted -Command “start notepad C:\Windows\System32\drivers\etc\hosts -verb runas”

IPアドレス server名
適当なサーバー名で追加する。

ファイル>オプション>トラストセンター>トラストセンターの設定>信頼できる場所>新しい場所の追加
から追加したサーバー名を追加する。
(サブフォルダも許可する)

~ここまで

Excel 信頼済みサイト登録(レジストリ)

ファイルまでのパスに㈱という文字があったら開けなかったので、パスの中の文字列が原因の場合もある。

・~$(チルダドルファイル)

誰が開いているか通知する機能がおかしくなった場合、~$(チルダドルファイル)の問題が考えられるので、
エクスプローラ>表示>オプション>フォルダーと検索のオプションの変更>表示>保護されたオペレーティングシステムファイルを表示しない
のチェックを外し、Excelの終了と同時に削除されるか確認する。

今回は、HS属性が外れてしまった~$(チルダドルファイル)が自動で削除されずそのまま他の人が再利用してしまう(実際開いている人とは違う名前が表示されてしまう)という状態。
NAS上にあるExcelファイルだったので、VPNが切れたかExcelが落ちたかしたことが発症のきっかけだったのだけど、手動で~$(チルダドルファイル)を削除しても症状が直らず、ネットワークキャッシュ(SMBキャッシュ)を無効化したら直った。

Windows 不具合関連

PowerShell ~$ファイル(Excel)移動

エクスプローラで検索するとき

・保存ダイアログが表示されない(変更内容を保存しますか?)

アドインが悪さをしていることが多く、今回は、
Acrobat PDFMaker Office COM Addin
が原因だった。

保存しているはず(たぶん)なのに保存されていないという症状がでて、
今回はアドインは読み込んでいなかった。
オプション>保存>キャッシュファイルの削除の実行
(ファイルを閉じたときに … 削除するにチェック)
で一応症状が落ち着いた。
ただし、これは原因がはっきりしないので勘違いかも。

・使用者は’ほかのユーザ’ですと表示されてしまう

Aが開いていてBが通知を受け取ることにした。AがExcelを閉じてもBに通知が行かなかった(もしかしたら通知は行ったけど、Bが開かなかったのかも)Bは他のExcelファイルを開いていてExcelのプロセスが生きている状態。これで~$は削除されているし、該当のExcelファイルは誰も開いていないけど、BのExcelのプロセスがファイルをつかんでいた。

・外部リンクの削除

数式で[を検索する
あるいは、
データ>リンクの編集>リンクの解除

検索しても見つからない、編集からも解除できない場合、
プルダウンに存在する場合がある。
データ>データの入力規則

VBA 入力規則

・最終行の見つけ方

Ctrl + End
Ctrl+G>セル選択>最期のセル

VBAの場合

行削除でスクロールバーのサイズが戻らない場合、オブジェクトが存在している場合あり。

・オブジェクトの見つけ方

動作が遅い(重い)場合、これが原因のことが多い。

ホーム>検索と選択>オブジェクトの選択と表示

VBAの場合

 

・短くなったスクロールバーのリセット

最期のセルの位置を修正し、A1などを選択し保存+閉じる。

・最終行まで続く罫線の消し方

(罫線が最期のセルになっていることも多い)

行削除しても下から復活するような罫線は、該当のカラム(A、Bなど)を選択して罫線を「なし」にする。

1行から1048576行まで縦の罫線を引いている場合でも、下からある程度の罫線をクリアすれば行削除しても復活しなくなる。

・改ページプレビューを標準に戻す

シートが多い場合で、改ページプレビューにしていると重いことがある。

・コードの自動実行を止める

このような場合。

Shiftを押しながら開くのは、
ファイル>開く>参照
で表示されるファイルを開くダイアログで実行する必要がある。

MsgBoxが表示される場合なら、表示されたときにCtr+Breakでも止められる。

・循環参照の見つけ方

数式>エラーチェック>循環参照

・Microsoft.Office.Interop.Excel.ApplicationClassのCOMオブジェクトをインターフェイス型 Microsoft.Office.Interop.Excel._Application’にキャストできません。
というエラー。

appwiz.cpl>Microsoft Officexxx>変更>クイック修復
クイック修復だとプロダクトキーは不要。

・自動回復

C:\Users\shogo\AppData\Roaming\Microsoft\Excel

 

 

AutoHotkey キー設定スクリプト

長らくChangeKeyとAutoHotkeyを併用していた。ChangeKeyを先に使い始めたためそのような状態になっていたが、先日ようやくAutoHotkeyだけの環境にした。通常のスタートアップだと一部の管理者権限のソフトでは反応しないこともあるけど仕方ない。

※現在未使用

 

・追記

AutoHotkeyのみの環境になってからしばらくしてキーボードをLite2からHybrid Type-Sに変更した。AutoHotkeyのリマップだけだと問題がでることも多いので、HHKBのリマップツールを採用することにした。

現在は下記の通り

 

C# PDFiumでPDFを読み込む

業務で利用するPDFを取り込んだらどうだろうと思い実験。とりあえず、ページ移動とブックマークのようなものだけ。

NuGetから、
・PdfiumViewer
・PdfiumViewer.Native.x86.v8-xfa
の2つをインストール。

 

簿記 原価計算ざっくり復習

●原価計算の種類

「個別」と「総合」
「実際」と「標準」
「全部」と「直接」
8通りの組み合わせがある。

●勘定科目の振り替え①

・材料購入
材料 200 | 買掛金 200
(材料:資産勘定)

・工程投入
仕掛品 100 | 材料 100
(仕掛品:資産勘定)

・完成
製品 100 | 仕掛品 100
(製品:資産勘定)

・販売
売上原価 100 | 製品 100
売掛金 120 | 売上 120
(売上原価:費用勘定)

販売したら売上原価という費用になる。
120 – 100 = 20という計算。

このように振り替えられていくのが基本。

●勘定科目の振り替え②

間接費がある場合。

・材料購入
材料 100 | 買掛金 100
(材料:資産勘定)

・工程投入
仕掛品 50 | 材料 100
製造間接費 50
(仕掛品:資産勘定)
(製造間接費:資産勘定)

・締め

製造間接費は最終的に仕掛品になるが、
この製造間接費→仕掛品のとき製品ごとに配賦する。

仕掛品 50 | 製造間接費 50

●材料費

・構成

月初材料在庫
購入分

仕掛品(直接商品分)
製造間接費(間接消費分)
月末材料在庫

●労務費

直接工でも間接的な作業をしている分は間接労務費となる。

・賃率

直接工の賃金は直接労務費と間接労務費に分ける必要があるため、賃率を算出する必要がある。

直接工の支払賃金(原価対象賃金) ÷ 作業時間

●総合原価計算

ある期間の製造原価を数量で割るという考え方。
直接材料とそれ以外に分ける。

●標準総合原価計算

標準原価=原価標準×生産量
(原価標準=目標とする1単位あたりの原価)

***

中小企業での実際

当期、期首、期末という表現にしているが、だいたい月単位で実施する。

●在庫(棚卸)の評価

大まかに対象は製品、仕掛品、材料となり、
それぞれ、ある程度合理的な評価を継続する必要がある。

材料は取得原価。(最終仕入原価法)
製品・仕掛品は売価還元法。
棚卸しない材料、また労務費、経費は当期費用。
(売価還元法との整合性については法人税法基本通達2-2-9)

・売価還元法(法人税基本通達5-2-4)

製品・仕掛品は仕入がないので売価還元となる。

原価率算出
・原価率 = A / B (原価/売価)
A = 期中仕入 + 期首在庫(原価)
B = 期中売上 + 期末在庫(売価)
※考え方が分かりづらいが、期首にあった在庫は期中に仕入れたと考え、期末に残った在庫は期中に売り上げたと考えてしまうイメージ。そうすることで当期に在庫が残らず全て売れた場合の原価率となる。

●個別原価、見積原価

多くの中小企業は多品種少量生産なので、気になる製品だけ個別原価を出している企業も多い。

一番簡単な計算方法は、
・材料費として利用した量。
・労務費として時間*賃率。
・経費として原価*経費率をかける。
この経費の部分に間接費+販管費が含まれると考える。

●期間原価

当期仕入をすべて費用計上し、当期売上と比較しながらキャッシュフローを把握する。受注生産でストック在庫がないなら、運転資金に注意しつつ、これだけでも役に立つ(むしろこれしか実施していない企業も多い)

●賃率

売価還元法では製造原価のために賃率は必要ないが、上記個別原価や見積もりなどで利用されることが多い。

1.販管費とする間接部門と直接部門を分ける。(直接工や間接工は分けない)
2.直接部門の人件費(賃金、賞与等)を直接部門の総労働時間で割って賃率を算出する。

 

C# クラス生成+リスト追加の高速化

・class → structへ変換
・AsParallel() / Linqの利用
・Capacity / Listの利用
・foreach() → AsParallel().ForAll()へ変換
・foreach() → Parallel.ForEach()へ変換
・List<ClassItem> → ConcurrentBag<ClassItem>へ変換
で実験。

 

C# Task/CancellationTokenでキャンセル

 

Windows タスクスケジューラ

ファイル名を指定して実行
taskschd.msc
からも登録できる。

・バッチから登録する場合

schtasks /create
で登録できる。

・オプション

/ru:実行ユーザーアカウント
ユーザーがログオンしているかどうかにかかわらず実行
にしたい場合
system
とするが、その場合、対話はできないので注意。また、
administrators
のようにグループでも指定もできる。administratorsの場合は、
ユーザーがログオンしているときの実行する
になる。

/tn:タイトル
/tr:実行ファイルパス
/sc:スケジュール

/mo:スケジュール修飾

/st:開始時刻(24時間形式)
/rl:実行レベル

・サンプル

schtasks /create /tn “title” /tr “exepath” /sc daily /st 12:00 /rl highest
毎日12時に実行+管理者権限で実行

schtasks /create /tn “title” /tr “exepath” /sc hourly /mo 6 /st 06:00 /rl highest
今日の6時から開始し以後6時間ごとに実行+管理者権限で実行

schtasks /create /ru system /tn “title” /tr “exepath” /sc onlogon /rl highest
ログオン時に実行+管理者権限で実行+ログオンに関わらず

・削除
schtasks /delete /tn “title”

・無効
schtasks /change /tn “title” /disable

不要なタスク停止

Officeに関わるものを停止するとOfficeが立ち上がらないことがある。

 

C# TabPageの複写

TabPageを動的に追加する場合、細かい設定は面倒なので、デザイナーで作っておいて複写したい。

TabPage、中に入れるControlどちらも、インスタンスに対して必要なプロパティを直接指定(nPage.Text = oPage.Textのように)した方が楽だけど、今回は自動で渡してみた。

 

 

C# ファイル検索(インクリメンタルサーチ)

C# ファイル検索+指定秒数でサムネイル作成(FFmpeg)

以前からときどきfenrir(B@r09u3 Style Op.2)というフリーソフトを利用していたが、更新が止まっているようなので、自分用に同じようなソフトを作成した。もともとファイル検索だけできればいいので、機能も見た目も限定的。