soar

一眼レフカメラでは2009年5月から撮り始めました。

400万画素のコンデジとは比較にならない楽しさです。


人目に晒すことで、緊張感を持って写真を撮りたいと

思います。



カメラ:CANON EOS 50D

レンズ:CANON EF-S17-85 IS U

Amebaでブログを始めよう!
1 | 2 | 3 | 4 | 5 | 最初次のページへ >>

Wordマクロで更新履歴、コメント削除、目次更新してみたかった

VBA初心者が、Wordでのリリースドキュメントの最終処理を省力したかったメモ。

動きゃあええねん、の精神で作ったので、テスト少な目。

思ったより直観的な書き方で動いてくれるので、勘所を抑えていないソースになってそう。

もうちょっと勉強しときたいー。


Function accept_revision()
    ActiveDocument.AcceptAllRevisions
    ActiveDocument.TrackRevisions = False
End Function

Function delete_comment()
  Dim myComment As Comment
 
  For Each myComment In ActiveDocument.Comments
    myComment.Delete
  Next
End Function

Function update_contents()
  Dim tc As Word.TableOfContents
   
  For Each tc In ActiveDocument.TablesOfContents
    tc.Update
  Next
End Function

Function open_doc(myfile)
  Documents.Open FileName:=myfile, ReadOnly:=False
  open_doc = 0
End Function

Function save_doc()
    If ActiveDocument.Saved = False Then ActiveDocument.Save
End Function

Function close_doc()
    ActiveDocument.Close
End Function

Function finalize(mypath)
  Dim files(100)
  
  'ファイルの取得
  files(1) = Dir(mypath & "\*.doc*")
  i = 1
  Do While files(i) <> ""
      i = i + 1
      files(i) = Dir()
  Loop
  
  i = 1
  Do While files(i) <> ""
    'docファイルを順に処理

    ret = open_doc(mypath & "\" & files(i))
    ret = accept_revision()
    ret = delete_comment()
    ret = update_contents()
    ret = save_doc()
    ret = close_doc()
    i = i + 1
  Loop
End Function

Private Sub ButtonBar1_OnClick(ByVal ButtonId As Long)

    Dim rc As VbMsgBoxResult
    rc = MsgBox("リリース前処理を続行しますか?" & vbCrLf & "「はい」の場合、リリースフォルダを選択してください。(再帰処理なし)", vbYesNo + vbQuestion)
    If rc = vbYes Then
    
        With Application.FileDialog(msoFileDialogFolderPicker)
            If .Show = True Then
                rc = MsgBox("下記フォルダで処理を開始してよいですか?" & vbCrLf & .SelectedItems(1), vbYesNo + vbQuestion)
                If rc = vbYes Then
                    ret = finalize(.SelectedItems(1))
                End If
            Else
                rc = vbNo
            End If
        End With
    End If
    
    If Not rc = vbYes Then
        MsgBox "処理を中止します", vbCritical
    End If
End Sub
 

日付置換のワンライナーメモ

ログの時刻が一定時間ずれていて、調整した時に使えるかもヽ(゚◇゚ )ノ


> Get-Content .\test_data1.csv | foreach { if ($_ -match "\d{1,2}:\d{1,2}:\d{1,2}")
{echo ($_ -replace $matches[0],((([Datetime]$matches[0]).Addseconds(50)).tostring("HH:mm:ss")))}} >> result.csv

これは一律50秒進める例。カッコ多すぎ?w

arpテーブルからhostname取得メモ

PowershellのInvoke-Commandで、非ドメイン環境だと
IPアドレス指定ができなさそうだったので、
arpテーブルからhostnameを引っ張ってくるスクリプトメモ。

##################################################

$ip_array = @()
$ip_hash = @{}

arp -a | foreach-object {
if ($_ -like "*動的*") {
$ip_array+= $_.split(" ")
}
}

foreach ($i in $ip_array) {
if ($i -like "*.*.*.*" ) {
nbtstat -A $i | foreach-object {
if ($_ -like "*<00>*一意*") {
$tmp = -Split $_
$ip_hash[$i] = $tmp[0]
}
}
}
}

"ip_addr,hostname" >> C:\result_20140322.txt
foreach ($key in $ip_hash.Keys) {
[String]($key + "," + $ip_hash[$key]) >> C:\result_20140322.txt
}
1 | 2 | 3 | 4 | 5 | 最初次のページへ >>