MS Outlookでメールのヘッダを見ようと思ったが、操作が分からなかったので調べてみた。
リボンの上部の「メッセージタブ」をクリック。
リボンの下段「オプション」の右の 「』をクリック。
メッセージオプションというダイアログが出る。
下段の「インターネットヘッダー」の小さなボックスの中にメールヘッダーが表示されている。(灰色で分かりにくいが。)
MSサポートによると
http://office.microsoft.com/ja-jp/outlook-help/HA001230300.aspx#BM2
メッセージ ヘッダーを表示する
メッセージを開きます。
[メッセージ] タブの [オプション] で (ダイアログ ボックス起動ツール) をクリックします。
[メッセージ オプション] ダイアログ ボックスの [インターネット ヘッダー] ボックスに、電子メール メッセージ ヘッダーが表示されます。
2011年6月22日水曜日
2011年6月5日日曜日
VBScript カンペ
作業にVBSを使ったので、調べた内容をメモ。
Hello World
WScript.Echo "Hello World"
文法
行末にセミコロンは不要。
コメントアウト
シングルクォーテーション以降はコメント扱いになる。
複数行コメント【/* コメント */】は対応していない。
マルチステートメント
コロン【:】で複数命令を1行で記述できる。
コードの途中改行
行末にアンダーバー【_】を入れると、次の行がコードの続きとして扱われる。
変数名、関数名は大文字小文字の区別なし。
オブジェクトへの参照を代入する。
Set
文字リテラル
文字列はダブルクォーテーションで囲む。
数字をダブルクォーテーションで囲めば、文字列として扱われる。
文字の連結はアンパサント【&】を使う。
"hoge" & "hoge"
型宣言
なし、基本Variant型。
変数宣言と同時に初期化できない。
【Dim strTes="Hello World"】はエラーになる。
マルチステートメントを使う。【Dim strTes : strTes="Hello World"】
関数宣言
サブプロシージャ
Sub TestSub(arg1,arg2)
strSample =arg1 & arg2
WScript.Echo strSample
End Sub
関数プロシージャ
Function TestFunc(arg1,arg2)
TestFunc=arg1 & arg2
End Function
サブプロシージャと関数プロシージャの違い
サブプロシージャ戻り値なし。
関数プロシージャ戻り値あり。
関数呼び出し
サブプロシージャ
TestSub "aaa","bbb"
括弧をつけるとエラーになる。
Result = TestFunc("aaa","bbb")
括弧をつけないとエラーになる。
変数のスコープ
プロシージャ内部で変数を宣言した場合、プロシージャ内でローカル変数となる。
プロシージャ外部で変数を宣言した場合、スクリプトレベル変数と言うグローバル変数となる。
プロシージャ内で参照可能なので、変数名が被らないように注意が必要。
main()を宣言しスクリプトレベル変数を宣言しないようにする。
Call main()
Sub main()
'処理を記述する。
End Sub
条件分岐
If文
If (intMonth < 1 Or 12 < intMonth) Then
WScript.Quit(0)
ElseIf 条件式 Then
実行文
End If
For文
For i = 1 To 10 Step 1
hoge=hoge & i
Next
GotoはSub又はFunctionの呼び出しで代用する。
WScript.Quit(0)がEndに相当。
演算子
論理積
And
論理和
Or
ファイル入出力
テキストファイルを1行ずつ読み込む。
Dim strFilePath : strFilePath = "FileName.txt" '相対パス、絶対パスともに可。
Dim objFileSystem : Set objFileSystem = CreateObject("Scripting.FileSystemObject")
Dim objReadFile : Set objReadFile = objFileSystem.OpenTextFile(strFilePath)
Do Until ( objFile.AtEndOfStream )
WScript.Echo objReadFile.ReadLine
Loop
objFile.Close
ファイル書き込み
Dim strFilePath : strFilePath = "FileName.txt" '相対パス、絶対パスともに可。
Dim objFileSystem : Set objFileSystem = CreateObject("Scripting.FileSystemObject")
Dim objWriteFile : Set objWriteFile = objFileSystem.CreateTextFile(strFilePath, True)
objWriteFile.WriteLine("hoge hoge")
objWriteFile.Close
ファイルの実行
DOSプロンプトの実行
Dim objShell : Set objShell = CreateObject("WScript.Shell")
objShell.Run "cmd.exe /c dir > DirResult.txt",0
0 非表示、1 通常ウィンドウ、2 最小化、3 最大化
プログラムの起動
Dim objShell : Set objShell = CreateObject("WScript.Shell")
objShell.Run "C:\Windows\System32\notepad.exe"
その他
改行コード
Chr(13) & Chr(10)
文字列切り出し
Mid(切り出し対象,何文字目から,何文字取り出す)
一文字目は0でなく、1で表わされる。
雑テクニック
YYYYMMDDHHmmの文字列作成
Mid(Now(),1,4) & Mid(Now(),6,2) & Mid(Now(),9,2) & Mid(Now(),12,2) & Mid(Now(),15,2)
先月の月を返す
Month(DateSerial(Year(Date), Month(Date), 0))
月の最終日付を返す
Day(DateSerial(intYear, intMonth + 1, 1) - 1)
キャンセルボタンを押したときの処理。
intMonth = InputBox("月を入力してください",,Month(DateSerial(Year(Date), Month(Date), 0)))
IF IsEmpty(intMonth) Then
WScript.Quit(0)
End If
課題
On Error Resume Nextのエレガントな使い方。
参考
http://msdn.microsoft.com/ja-jp/library/cc392489.aspx
Excelで特定行を複数ページに繰り返し印刷する
複数ページにわたる縦長の表を印刷するときに、
タイトル行を各ページに印刷できる。
ページレイアウト>印刷タイトル>
タイトル行をクリックした後、繰り返し表示させたい部分を選択する。
タイトル行を各ページに印刷できる。
ページレイアウト>印刷タイトル>
タイトル行をクリックした後、繰り返し表示させたい部分を選択する。
Excelで秒を0にする
Excelで時刻データの秒を切り捨て、0秒でそろえる方法。
=DATEVALUE(TEXT(【セル番地】,"yyyy/m/dd hh:mm")) + TIMEVALUE(TEXT(【セル番地】,"yyyy/m/dd hh:mm"))
Barracudaの分毎の処理(許可/拒否)の統計をとる時に使った。
生ログをエクセルで開き、秒を切り捨て。
ピポッドテーブルで集計。
=DATEVALUE(TEXT(【セル番地】,"yyyy/m/dd hh:mm")) + TIMEVALUE(TEXT(【セル番地】,"yyyy/m/dd hh:mm"))
Barracudaの分毎の処理(許可/拒否)の統計をとる時に使った。
生ログをエクセルで開き、秒を切り捨て。
ピポッドテーブルで集計。
Excelで順位をつける方法
たとえば100、95、95、92、90、90、90、80、70、65というデータがあって、
1、2、2、4、5、5、5、8、9、10という順位をつけたい場合。
あらかじめ、データは降順に並べておく。
データをB1~B10に張り付ける。
A1には1を入力、A2には【=IF(B1=B2,A1,ROW())】を入力。
A2をコピーし、A3からA10に張り付ける。
A1~A10に順位が表示される。
データを2行目以降に入力した場合は、順位がずれてしまう。
【=IF(E4=E5,D4,ROW()-3)】のように、微調整する必要がある。
画像のように、1位のセルの上に3行あいているときは3を引く。
6/22追記、rank関数で出来ました。
1、2、2、4、5、5、5、8、9、10という順位をつけたい場合。
あらかじめ、データは降順に並べておく。
データをB1~B10に張り付ける。
A1には1を入力、A2には【=IF(B1=B2,A1,ROW())】を入力。
A2をコピーし、A3からA10に張り付ける。
A1~A10に順位が表示される。
データを2行目以降に入力した場合は、順位がずれてしまう。
【=IF(E4=E5,D4,ROW()-3)】のように、微調整する必要がある。
画像のように、1位のセルの上に3行あいているときは3を引く。
6/22追記、rank関数で出来ました。
登録:
コメント (Atom)
