1.vbaをもとにxlsmファイルを整備
Excelに埋め込んだExcelオブジェクトを最大サイズで開くマクロ
Sub task()
'
' task Macro
'
'
With ActiveSheet
Set o = .OLEObjects("Object 1")
o.Verb xlVerbOpen
Application.WindowState = xlMaximized
End With
End Sub
2.バックアップバッチ
①バッチ名を入力、完全一致で起動(引数に指定してもOK)
②各種パスを指定
③本日日付を作成
④指定フォルダをローカル側にコピー、zipに変換、変換前フォルダは削除
⑤別ドライブがあれば転送
⑥終了
※Windows標準圧縮コマンドなので、Lhaplusとかで解凍すると文字化けしたりする
※あたりまえだがバッチは
・文字コードはSJIS
・改行コードはCRLF
@echo off
rem =========================================================
if "%1" == "" (
rem 第一引数がない場合は入力
echo enter the one
set /p ANSWER=
) else (
rem 第一引数をセット
set ANSWER=%1
)
if not %~n0 == %ANSWER% (
rem 起動ファイル名が入力された場合のみ起動
exit
)
rem =========================================================
rem zipファイル名
set BK_FILE_NAME=ふしぎなおくりもの
rem 保存元フォルダ
set WORK_DIR=C:\Users\%USERNAME%\Documents\なぞのばしょ
rem 保存先フォルダ
set BK_DIR=C:\Users\%USERNAME%\Documents\ふしぎなおくりもの
rem 転送先フォルダ
set OUTER_STRAGE_BK=W:\ふしぎなおくりもの
rem =========================================================
rem 日付作成
set HIZUKE=%DATE: =0%
set yy=%HIZUKE:~0,4%
set mm=%HIZUKE:~5,2%
set dd=%HIZUKE:~8,2%
set TODAYS_BK=%BK_DIR%\%BK_FILE_NAME%_%yy%_%mm%_%dd%
rem =========================================================
rem 対象を日付名ファイルとしてフルコピー、zip圧縮
mkdir %TODAYS_BK%
robocopy %WORK_DIR% %TODAYS_BK% /s /e
powershell Compress-Archive -Path %TODAYS_BK% -DestinationPath %TODAYS_BK%.zip -Force
rmdir %TODAYS_BK% /s /q
rem =========================================================
rem 外部転送
mkdir %OUTER_STRAGE_BK%
if exist %OUTER_STRAGE_BK% (
rem 外部ファイルにアクセスできれば転送
copy /y %TODAYS_BK%.zip %OUTER_STRAGE_BK%\%BK_FILE_NAME%.zip
)
rem =========================================================
echo END
powershell sleep 1
exit
3.タスクキルバッチ
①バッチ名を入力、完全一致で起動(引数に指定してもOK)
②メモリ使用量10kB以上のタスクをキルする(ほぼすべてキル)
③エクスプローラexeを再起動する
④終了
@echo off
rem =========================================================
if "%1" == "" (
rem 第一引数がない場合は入力
echo enter the one
set /p ANSWER=
) else (
rem 第一引数をセット
set ANSWER=%1
)
if not %~n0 == %ANSWER% (
rem 起動ファイル名が入力された場合のみ起動
exit
)
rem =========================================================
taskkill /f /fi "memusage ge 10000"
rem =========================================================
taskkill /im explorer.exe
start explorer.exe
rem =========================================================
exit
4.全起動バッチ
①バッチ名を入力、完全一致で起動(引数に指定してもOK)
②起動対象一覧があるフォルダへ移動
③フォルダ内を階層1でループ
・コマンドプロンプト画面をアクティブに
・画面サイズ最大で起動
(.linkファイル名は空白なし、.exeなどの文言なしにするとよい)
④終了
@echo off
rem =========================================================
if "%1" == "" (
rem 第一引数がない場合は入力
echo enter the one
set /p ANSWER=
) else (
rem 第一引数をセット
set ANSWER=%1
)
if not %~n0 == %ANSWER% (
rem 起動ファイル名が入力された場合のみ起動
exit
)
rem =========================================================
rem 起動対象
cd /d C:\Users\%USERNAME%\Documents\なぞのばしょ\link
rem =========================================================
if "%2" == "" (
rem 第二引数が存在しない場合はcmdパス
set WINDOW_NAME=C:\Windows\system32\cmd.exe
) else (
rem 第二引数が存在する場合は起動中のウィンドウ名をセット
set WINDOW_NAME=%2
)
for %%f in (*.*) do (
echo START : %%f
rem 最大サイズで起動
start /max %%f
rem ウィンドウをアクティブに
powershell -command "(new-object -com 'WScript.Shell').AppActivate('%WINDOW_NAME%')">NUL
)
rem =========================================================
echo END
powershell sleep 1
exit
5.名前指定してファイル実行
2, 3, 4のバッチやお気に入りExcelファイルなどを一つのフォルダに集めておき
このバッチを起動して、ファイル名を入力すると、開くことができる
このバッチのショートカットをデスクトップに作成し、プロパティからショートカットキーを登録しておくと便利
@echo off
rem =========================================================
if "%1" == "" (
rem 第一引数がない場合は入力
echo enter the one
set /p ANSWER=
) else (
rem 第一引数をセット
set ANSWER=%1
)
if not %~n0 == %ANSWER% (
rem 起動ファイル名が入力された場合のみ起動
exit
)
rem =========================================================
rem 起動対象名のある指定フォルダに移動
set ARTIFACT_PATH=C:\Users\%USERNAME%\Documents\なぞのばしょ\artifact\
cd /d %ARTIFACT_PATH%
echo;
echo artifacts list
echo =========================================================
dir /a-d /b
echo =========================================================
echo;
echo call
rem 起動対象名を入力
set /p ARTIFACT_CALL=
if "%ARTIFACT_CALL%" == "" (
rem 未入力の場合終了
exit
)
rem =========================================================
rem 指定フォルダから起動対象名を検索
dir /a-d /b /s | findstr "%ARTIFACT_CALL%[^\\]*$" > %ARTIFACT_PATH%phantom.txt
set /p ARTIFACT_CALL_PATH=<%ARTIFACT_PATH%phantom.txt
del %ARTIFACT_PATH%phantom.txt
if "%ARTIFACT_CALL_PATH%" == "" (
rem 起動対象が見つからなければ終了
exit
)
rem =========================================================
rem 起動対象の拡張子がbatであるかの判定
echo %ARTIFACT_CALL_PATH% | findstr \.bat > NUL
if not errorlevel 1 (
rem batの場合は引数を指定して起動
rem 第一引数:起動対象名、第二引数:起動中のファイル名
rem このファイルがショートカットから起動された場合、ファイル名=ウィンドウ名となる
call %ARTIFACT_CALL_PATH% %ARTIFACT_CALL% %~n0
) else (
rem bat以外の場合は最大サイズで起動
start /max %ARTIFACT_CALL_PATH%
)
exit