No Such Blog or Diary
元データ発見
- 2026-07-02 (Thu)
- 一般
なるほど,あのソフトは元データの word ファイルを結合して表示してたのか…… ということをある程度作業を進めたところで気づいた.これなら元データの word ファイルを直接触ったほうが早い.
ということで,サブディレクトリ内の全 word ファイルを開いて先頭4段落分のテキストをファイル名とともに取り出して情報を整理することにした.これくらいならササっと PowerShell で(Write-Output するとパイプに出て Tee-Object で tee コマンドと同じ事ができることを学んだ):
$word = New-Object -ComObject Word.Application
$word.Visible = $false
ls */* | ForEach-Object { Write-Output $_.FullName; $doc = $word.Documents.Open([ref]$_.FullName); if ($doc.Paragraphs.Count -ge 4) { $txt = $doc.Paragraphs[1].Range.Text.trim() +"---"+ $doc.Paragraphs[2].Range.Text.trim()+"+++"+ $doc.Paragraphs[3].Range.Text.trim()+"==="+ $doc.Paragraphs[4].Range.Text.trim(); Write-Output $txt; } else { Write-Output 'NA---NA'; } $doc.Close();} | Tee-Object -FilePath ".\files.txt"
$word.Quit()
さて,これで必要な情報は揃ったので本来の仕事に取りかかれる.
- Comments: 0
- TrackBack (Close): -
揺れたなぁ
- 2026-07-01 (Wed)
- 一般
なんか揺れてるなぁと思ったら宮崎で震度4の地震だった.ここらは震度1だったけど6階で静かに作業してたので揺れがよく分かった.
とりあえず最近地震多すぎ.
- Comments: 0
- TrackBack (Close): -
PowerShell はなんでもできる?
- 2026-06-30 (Tue)
- 一般
PowerShell が色々できそうなのでマウスのクリックイベント発行とかもできると自動化が捗るかなと思って調べてたら,Gemini が user32.dll の関数呼んじゃうコードを出してきた:
$Signature = @'
[DllImport("user32.dll")]
public static extern void mouse_event(int dwFlags, int dx, int dy, int dwData, int dwExtraInfo);
'@
$App = Add-Type -MemberDefinition $Signature -Name "Win32MouseEvent" -Namespace "Win32Functions" -PassThru
$MOUSEEVENTF_LEFTDOWN = 0x02
$MOUSEEVENTF_LEFTUP = 0x04
$App::mouse_event($MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0)
$App::mouse_event($MOUSEEVENTF_LEFTUP, 0, 0, 0, 0)
DLL 呼べるならもはや何でもできるんじゃね? これが標準搭載のスクリプト言語でできるってのは便利だなぁ.
なお,マウス座標を移動するのは素直にできるっぽい:
[void] [System.Reflection.Assembly]::LoadWithPartialName("System.Windows.Forms")
[System.Windows.Forms.Cursor]::Position = New-Object System.Drawing.Point(500, 400)
- Comments: 0
- TrackBack (Close): -
PowerShell で word を操作
- 2026-06-29 (Mon)
- 一般
起動中の word のドキュメントをその冒頭の内容をファイル名として保存したいなぁとかいう需要があって,PowerShell でやってみた.
とりあえず起動中の word を確保:
$word = [System.Runtime.InteropServices.Marshal]::GetActiveObject("Word.Application")
そして開いているファイルについて最初の段落の内容をファイル名として保存:
foreach ($doc in $word.Documents) { if ($doc.Paragraphs.Count -ge 1) { $line = $doc.Paragraphs[1].Range.Text; $file="d:\words\"+($line.trim())+".docx";$doc.SaveAs([ref]$file, 16); } }
PowerShell は Office とかのオブジェクトを使えるので色々できて便利かも知れん.
- Comments: 0
- TrackBack (Close): -
ちょっと模様替え
- 2026-06-28 (Sun)
- 一般
ベッドを仕切り戸よりエアコン側に移して寝る時のエアコン効率アップ作戦.とりあえずどうなるかのお試し.
- Comments: 0
- TrackBack (Close): -
並んだ
- 2026-06-27 (Sat)
- 一般
甘いものを確保するためにちょっと並んでみた.
まず天神で「あずきバー祭り2026」のあずきバー無料配布に15分くらい並んだ.7月1日の「あずきバーの日」の先行イベントで,今年は天神も会場になってたので行ってみた.


あずきバーは安定して美味しいなぁ.ゴールド版も食べてみたいと思いつつどこで売ってるのか知らんので食べれてない.公式オンラインショップで「あずきバー食べ比べセット」とか注文するのが楽な気もする.
次に最近話題のもっちゅりんを確保するためにイオンモール直方のミスドで30分並んだ.

初めて食べてみたけど何とも不思議な食感.確かにもちゅっとしてる.別の文脈で食べた何かと同じ食感なのだけど何だったか思い出せない.何はともあれ普通に美味しい.みたらしはベトベト注意(どう食べるのが正しいん?).
- Comments: 0
- TrackBack (Close): -