とまと あんらいぷ…

エンジニアの活動記録とかつぶやきとか

GitHub

カテゴリ:Office の記事一覧

【Microsoft Outlook】メールのフラグが、To Do バーに反映されない時の確認ポイント

To Do バーに設定したフラグを表示させる


Microsoft Outlookを使っていると、「分類」や「フラグ」を活用して
タスク管理を行うことが多いと思います。

通常、送受信したメールの右側についている「フラグ」を設定することで
以下のイメージのように、
To Do バーに仕事として登録できます。

Microsoft Outlook フラグ

できるのですが、
To Do バーのプロパティや検索条件を見ても全く問題がないのに
どうにもこうにも、フラグが全く反映しないときがある。
そんなときは、To Do バーではなくメールボックス側の設定を疑ってみましょう。

プロパティを開く

プロパティを開いて・・・

To Do バーに表示

「このフォルダのアラームと仕事を To Do バーに表示する」にチェック
これで表示されるようになります。

テーマ:パソコン関連お役立ち情報 - ジャンル:コンピュータ

【Excel-マクロ】選択セルの操作(ループ)

何かと使いそうなので保持!
以下の関数は、Excelにて選択したセルをクルクルと回して
ゴニョゴニョしてる例です。


Sub セル内操作_シングル囲いを自動でやります()
Dim r As Range
Dim celltext As String
Dim idx As Long
idx = 0

'選択セル内の値を「'」で囲います
For Each r In Selection
If Len(Trim(r.text)) > 0 Then
idx = idx + 1
r.Value = "''" + r.Value + "'"
End If
Next
End Sub

【Excel-マクロ】テストデータ作成支援マクロ Excelから、DBへのInsert文を生成します。

テストデータ作成支援ツールは色々あると思うけど、
だいたいはテキストエディタで正規表現を使ってゴニョゴニョやることが多かった。
そろそろそれも面倒になってきたのでマクロ作ってみた。

SQL Serverの結果ペインからコピペしてExcel保存しとけば
いつでもデータ復元できて便利じゃないかなー。
コピペの際にはセルの書式は文字列にしておいてね。

やっつけで作ったけど。
一応NULL文字も対応してる。

既知のバグとして、キャンセルボタンが効かないかもしれないのでご注意!



Public Sub テスト支援_Insert文作成()

Dim tablename As String
tablename = InputBox("Insert Into {テーブル名}", "テーブル名を指定", "")

Dim columns As String

'ヘッダ作成
Dim objColumns As Range '選択されたセルの集合
Set objColumns = Application.InputBox(prompt:="ヘッダを含むデータを指定", Type:=8)
If IsEmpty(objColumns) Then 'キャンセルが押されたかチェックする
MsgBox "キャンセルが押されました"
Exit Sub
End If

columns = MAKE_CSV_FORMAT(objColumns)

'ファイル名を作成 ファイル名は自分のパス+\test.html
Dim strFNAME As String 'ファイル名保存用
strFNAME = ActiveWorkbook.Path & "\result.csv" 'ファイル名を作る

'テーブルデータを作成する
Call MAKE_CSV_FILE(tablename, columns, strFNAME, objColumns)

'できたファイルをメモ帳で表示して確認する
Shell "notepad.exe " & strFNAME '手抜きでShellで起動

End Sub


'ファイル名とセルの範囲RANGEを受け取り、
'ファイルを開きカンマ区切りのファイルを作成する
Sub MAKE_CSV_FILE(strTableName As String, strColumns As String, strFNAME As String, objHANI As Range)

'ファイルをオープンする
Dim FNO As Integer 'ファイル番号
FNO = FreeFile '空いてるファイル番号を取出す
Open strFNAME For Output As #FNO 'テキストファイルを新規作成

'行、列でループを作る
Dim y As Integer
Dim x As Integer
For y = 2 To objHANI.Rows.Count '行ループ

'Insert文出力
Print #FNO, "INSERT INTO " & strTableName & " (" & strColumns & ") VALUES ( ";

Print #FNO, "'" & objHANI.Cells(y, 1).Value & "'"; '先頭項目の出力

For x = 2 To objHANI.columns.Count '列ループ
Print #FNO, ",";
If objHANI.Cells(y, x).Value <> "NULL" Then
Print #FNO, "'" & objHANI.Cells(y, x).Value & "'";
Else
Print #FNO, "NULL";
End If
Next x

Print #FNO, ")" '改行のみ出力
Next y

'ファイルをクローズする
Close #FNO

End Sub

'ファイル名とセルの範囲RANGEを受け取り、
'ファイルを開きカンマ区切りのヘッダを
Function MAKE_CSV_FORMAT(objHANI As Range) As String

'行、列でループを作る
Dim y As Integer
Dim x As Integer
Dim ret As String
y = 1
ret = objHANI.Cells(y, 1).Value '先頭項目の出力
For x = 2 To objHANI.columns.Count '列のループ
ret = ret & ","
ret = ret & objHANI.Cells(y, x).Value
Next x

MAKE_CSV_FORMAT = ret
End Function

Excel2000-2003 CSVやタブ区切りで保存したらフォーマットが異なってしまう・・・カンマとかタブの数とか。


[XL2002]CSV形式で保存した際カンマの数が17行以降異なる

これは盲点すぎるわ・・・
Excel2002の仕様らしいけど、しっかり2003まで引き継いでる。

具体的には、
16行:1,2,3,4,5
17行:1,2,3,4,N

こういう データがあったとして、
NがNULL(空文字)の場合、CSV出力した時に
16行:1,2,3,4,5
17行:1,2,3,4 
って保存される。

16行:1,2,3,4,5
17行:1,2,3,4,

こうだろ!?こう!!
保存の時に「項目数はヘッダに合わせる」みたいなオプションつけてくれよ・・・


16行目と17行目を堺にフォーマットがおかしくなるとか・・・
たまたまググッたら見つけることができたけど
ここでハマってたらほんまにどうしようも無かったと思う。

ちなみにヘルプを見る限り、CSV形式での保存においては解決策はなさそう。
。。。いやあったww

-------------引用--------------
最後のセルまでのセル範囲の( 上記手順では A1:F20)、フォントの種類やスタイル (太字や斜体) などの書式を変更します。
ただし、CSV ファイルには書式情報が保存されないため、書式を設定して生成した CSV ファイルを再度 Excel で開き、上書き保存すると 16 行目以降のカンマが 表示されません。


つまり、対象となるセルたちに書式設定を行って保存したらカンマもつられて表示されると・・・
簡単な対応でよかった。

他の方法としては、。
マクロか何か実装すればいいんですかね。めんどくさいなぁ。

Google先生に多謝。

一応参考程度にマクロ作ってみた。
適当にイジってゴニョゴニョすればいいと思うよ。
選択セルのデータ出力ぽいもの



FC2Ad