Windows7での小技いろいろ

Windows7上で何かしようとして上手くいかなかったり、調べて解決した備忘録です。
そろそろWindows10の時代でも、使える小技もあるかも。



「小枝」と「小技」の漢字は似ています(笑)




ショートカットの相対アドレス

ショートカットは普通に作ると絶対アドレスになってします。相対アドレスにするには以下の2ヵ所を変更する。


*)ショートカットのプロパティで絶対アドレスになっているところを

%windir%\system32\rundll32.exe url.dll,FileProtocolHandler ".\現在位置からのアドレス"

*)ショートカットのプロパティの「作業フォルダ」 の欄を空白にする



自動でPCを終了させるバッチファイル

仕事の定時を意識できるように自動でPC終了警告を出し、続けたいときは「Enter」でshutdownコマンドをキャンセルできます。集中してるときは時計見ないですからね~~

以下のコマンドをメモ帳などで作成し、「shutdown.bat」などの名前でbatファイルを作成します。

@echo off
shutdown -s -f -t 60
echo キャンセルするにはEnterキーを押す
pause >nul 2>&1
shutdown -a

「60」が表示後のシャットダウンまでの時間なので状況に合わせて変更可能。

次に上記のbatファイルをwindowsの「タスクスケジューラ」に登録します。

「スタート」→「すべてのプログラム」→「アクセサリ」→
「システムツール」→「タスクスケジューラー」→「基本タスクの作成」

後は指示に従って上記の「bat」ファイルを登録、作動時間を設定します。

このタスクだけはスリープを自動解除して実行できるようにプロパティの「条件」タブで設定を変えておきます。会社などは省エネ推進でPCを立ち上げたままだとスリープモードに入ってしまうこともあるので!
これで終わりです。



マイクロソフト純正ソフトでメモリー解放

最近のWindowsは何だかんだでメモリーを解放してくれないので、私みたいに少ないメモリーで動かしてると大変。
重く感じたときにマイクロソフト純正ソフトを使って少しでも容量を増やせるバッチファイルの作成です。

さすが、マイクロソフト純正だけあって、64bit版 Windows 7/8/8.1/10などでも十分に効果を発揮してくれます。

インストールの方法は

1)先ず『Windows Server 2003 Resource Kit Tools』をダウンロード。

https://www.microsoft.com/en-us/download/details.aspx?id=17657

2)ダウンロードした「rktools.exe」を解凍して必要なファイルを抜き出す。
 解凍には別ソフトが必要で私は「7Zip」と言うソフトを使用。

「rktools.exeを解凍」→「rktools.msiを解凍」→一覧から「empty.exe」

3)「empty.exe」を、C:¥WINDOWS¥system32 にコピー

4)「empty.bat」などの名前でバッチファイルを作成して実行する。
  バッチファイルの中身は以下の2行のみでOK

    @echo off
    empty.exe *

数%程度の改善のときもありますが結構、重宝しています。






エクセルのグラフの線を一括で変更するマクロ

エクセル2016で折れ線グラフを作成すると初期値の線が何故か太い。一括変換が無いようなので、変更する折れ線が多くなると大変だし、折れ線が重なってたりすると上手く折れ線を選択できないで困ってました。

テンプレートを作っておけばいいのでしょうが自由度がなくなるので、今回はマクロで対応します。折れ線の太さは数値で設定しますが、太くすると数値も大きくなります。

手順
[開発]→[マクロ]→[作成(マクロ名を”line”にしています)]→[グラフ選択]→[マクロ実行]

Sub line()
n = ActiveChart.Parent.Index '選択されたグラフ取得
Dim i As Long
With ActiveSheet.ChartObjects(n).Chart.SeriesCollection
For i = 1 To .Count
    .Item(i).Format.line.Weight = 1 '線の太さ
Next i
End With
End Sub



エクセルシートの複素数をVBAで扱う

仕事で分析するときにたまにFFTを使いますが結果が複素数になるため、データが多くなるときはシート上で色々な処理計算をするより一度VBAに移行して普通に計算してからエクセルシートに戻して表示したほうが簡単。エクセルは表示が楽だからなかなか手放せません(笑)

たまにしか使わないので忘れないようにするための個人的なメモ書きです。

エクセルのセルに複素数データ「x+yi」

    

VBAに以下のコマンドで取り込む(エクセル2010以降のコマンド)
Re = Application.WorksheetFunction.Imreal(Cells(3,2))    実数部
Im = Application.WorksheetFunction.Imaginary(Cells(3,2))  虚数部
    
VBA上でスカラーと位相情報を処理する
    
VBAでエクセルワークシートにデータを書き込む
Cells(a,b) = ???

    

エクセルシートで処理を行う

VBA上ではRange("B3")ではなくてCells(3,2)表示を使う。
VBAで処理するとき「For ~Next」などの繰り返し処理をするのにエクセルのRC形式でないと上手く使えない。

その他として

VBAを使う一連の動作はエクセルシート上でマクロ実行で行う。
マクロ実行はボタン図形などに登録してクリックで実行する。
VBAでエクセルシートの操作命令は良くわからないので、一連の動作をマクロ記録するとVBA上にコマンドが記録されるので必要な命令をコピーしてVBAを完成させる。