BDドライブ

PCにBDドライブを搭載しました。

BR-PI816FBS-BK (BUFFALO Pioneer製ドライブ SATA)を購入しました。

これまで長らくPanasonic製のDVD-RAMドライブ(ATAPI)とNEC製のDVD-+R/RWドライブ(ATAPI)を使ってました。 DVD-RAMはデータを保存したものにカートリッジ式のDVD-RAMメディアがあったのと、NEC製ドライブがうるさいので音楽CDやDVD-Videoを再生する場合に使ってました。 NECのドライブは、CD-R/RWの書き込みができるために使っていたのと、読み込み速度がPanasonicのドライブより早かったので使ってました。 どちらもCRPMに対応はしていたのでデジタル放送を記録したDVD-Rなどの再生はできました。 BDドライブの搭載でPanasonicのドライブもNECのドライブも現役引退です。

PS3のHDD換装

WD5000BEVT (WesternDigital製SATA 2.5インチHDD 500GB)を購入して、PlayStation3のHDDを交換しました。 もともと60GBモデルでしたが、特に不自由してるわけではないのですが、そのうちメディアプレーヤーの母艦になるであろうと思って、交換してみました。

換装後に気になったのは、2回ほどPlayStation Homeがハングアップしたことです。 ハングアップは連続して発生したので、時期的なものを考えると熱暴走のような気がします。 PS3は一番初期のモデルで発熱量も消費電力も大きいです。 ゲームをしているときにハングアップしたわけではないので、もしかしたらPlay Station Homeにバグがあるのかも知れませんが。。。 熱暴走は1年前にも経験したような気がします。

肌荒れが治らない・・・。

高温で湿気の多いところに行くとすぐに肌に吹き出物ができてしまいます。

アレルギー体質を改善しようと食生活には気をつけていますし、私生活の環境も気をつけています。

しかし、職場環境はコントロールできないですね。

どうしても外気の湿気を取り入れてしまい、気流にムラが多く、体温が上がり発汗が多くなるので、肌荒れを起こします。

あとお昼ごはんを食べた直後になるので、アレルゲンが含まれているような気がします。

たぶん卵なのでしょうね。

Excel VBA セル内の文字列のチェックと変換

WordPressのプラグインで、WP-Syntaxっていうソースコードを整形して表示するものがあります。 これならいちいちHTMLタグやエスケープシーケンスを入れずに済むのでサンプルを公開しやすくなるかな。

このコードは実際に動きます。

Excelのマクロでコード編集を表示して貼り付けてください。 後はシートにボタンを貼り付けて、先頭の2つのプロシージャーを呼び出せばOKです。 中に"N2S"という関数がありますが、Nullチェックをしています。 何か作って置き換えてください。

Option Explicit

'定数
Public Const COMMAND_CHECKCELL_WIDEALPHABET = 1
Public Const COMMAND_CHECKCELL_WIDENUMBERS = 2
Public Const COMMAND_CHECKCELL_WIDEMARKS = 3
Public Const COMMAND_CHECKCELL_WIDECOMMA = 4
Public Const COMMAND_CHECKCELL_WITHOUTINCLUDEDCHAR = 5

Public Const COMMAND_CONVERT_WIDEALPHABET = 1
Public Const COMMAND_CONVERT_WIDENUMBERS = 2
Public Const COMMAND_CONVERT_WIDEMARKS = 3
Public Const COMMAND_CONVERT_WIDECOMMA = 4

'色
Public Const COLOR_PINK = 16711935
Public Const COLOR_BLUE = 16776960

'セルのフォント情報の保存
'メンバーは何が入ってくるかわからないのでとりあえず「Variant」
Type tyFontInfo
    vBold As Variant
    vColor As Variant
    vColorIndex As Variant
    vFontStyle As Variant
    vItalic As Variant
    vName As Variant
    vShadow As Variant
    vSize As Variant
    vStrikethrough As Variant
    vSubscript As Variant
    vSuperscript As Variant
    vUnderline As Variant
End Type

'イベント共通処理
'チェック
Public Function gExecCellCheck(ByVal lCommand As Long) As Boolean
    On Error GoTo ErrProc

    Dim lRow As Long
    Dim lCol As Long
    Dim objWs As Excel.Worksheet

    Set objWs = Application.ThisWorkbook.ActiveSheet
    lRow = Application.ActiveCell.Row
    lCol = Application.ActiveCell.Column
    Application.ScreenUpdating = False
    
    Select Case lCommand
        Case COMMAND_CHECKCELL_WIDEALPHABET, _
             COMMAND_CHECKCELL_WIDENUMBERS, _
             COMMAND_CHECKCELL_WIDEMARKS, _
             COMMAND_CHECKCELL_WIDECOMMA
            If CheckCell_WideThin(objWs, lRow, lCol, lCommand) Then
            Else
                'チェック対象が見つからなかった
            End If
            
        Case COMMAND_CHECKCELL_WITHOUTINCLUDEDCHAR
            If CheckCell_WithOutIncludedChar(objWs, lRow, lCol) Then
            End If
            
        Case Else
        
    End Select
    
    Application.ScreenUpdating = True
    MsgBox "チェック終了", vbOKOnly + vbInformation
ExitProc:
    Exit Function
ErrProc:
    Call ErrFunc(Err, "gExecCellCheck")
    Resume ExitProc
End Function

'イベント共通処理
'変換
Public Function gExecCellConvert(ByVal lCommand As Long) As Boolean
    On Error GoTo ErrProc

    Dim lRow As Long
    Dim lCol As Long
    Dim objWs As Excel.Worksheet

    If vbYes = MsgBox("変換処理をすると元に戻すことができません。" & vbCrLf & _
                      "事前にバックアップを作ることを推奨します。" & vbCrLf & vbCrLf & _
                      "変換処理を行いますか?", vbYesNo + vbQuestion) Then
    Else
        GoTo ExitProc
    End If
    Application.ScreenUpdating = False
    
    Set objWs = Application.ThisWorkbook.ActiveSheet
    lRow = Application.ActiveCell.Row
    lCol = Application.ActiveCell.Column
   
    If Convert_Letter(objWs, lRow, lCol, lCommand) Then
        MsgBox "変換終了", vbOKOnly + vbInformation
    Else
        '変換の失敗
        MsgBox "変換できませんでした。", vbOKOnly + vbExclamation
    End If
    
ExitProc:
    Application.ScreenUpdating = True
    Exit Function
ErrProc:
    Call ErrFunc(Err, "gExecCellConvert")
    Resume ExitProc
End Function

'選択中のセルの書式を保存した後、変更
Private Function CheckCell_WithOutIncludedChar(ByVal objWs As Excel.Worksheet, _
                                               ByVal lRow As Long, _
                                               ByVal lCol As Long) As Boolean
    CheckCell_WithOutIncludedChar = False
    On Error GoTo ErrProc
    
    Dim strCellValue As String
    Dim lCnt As Long
    Dim arrErrStringIdx() As Long
    
    ReDim arrErrStringIdx(0)
    
    strCellValue = objWs.Cells(lRow, lCol).value
    If CheckLetter_WithOut_OSIncluded(strCellValue, arrErrStringIdx) Then
    Else
        For lCnt = 0 To UBound(arrErrStringIdx)
            If objWs.Cells(lRow, lCol).Characters(arrErrStringIdx(lCnt), 1).Font.Color = COLOR_PINK Then
                objWs.Cells(lRow, lCol).Characters(arrErrStringIdx(lCnt), 1).Font.Color = 0
            ElseIf objWs.Cells(lRow, lCol).Characters(arrErrStringIdx(lCnt), 1).Font.Color = 0 Then
                objWs.Cells(lRow, lCol).Characters(arrErrStringIdx(lCnt), 1).Font.Color = COLOR_PINK
            Else
            End If
            CheckCell_WithOutIncludedChar = True
        Next
    End If
    
ExitProc:
    Exit Function
ErrProc:
    Call ErrFunc(Err, "CheckCell_WithOutIncludedChar")
    Resume ExitProc
End Function

'機種依存文字以外のチェック
Private Function CheckCell_WideThin(ByVal objWs As Excel.Worksheet, _
                                    ByVal lRow As Long, _
                                    ByVal lCol As Long, _
                                    ByVal lMode As Long) As Boolean
    CheckCell_WideThin = False
    On Error GoTo ErrProc
    
    Dim strCellValue As String
    Dim lCnt As Long
    Dim arrWideStringIdx() As Long
    Dim arrThinStringIdx() As Long
    Dim flgCheckOK As Boolean
    
    strCellValue = objWs.Cells(lRow, lCol).value
    
    Select Case lMode
        Case COMMAND_CHECKCELL_WIDEALPHABET
            flgCheckOK = Check_WideToThin_Alphabet(strCellValue, arrWideStringIdx, arrThinStringIdx)
        Case COMMAND_CHECKCELL_WIDENUMBERS
            flgCheckOK = Check_WideToThin_Numeric(strCellValue, arrWideStringIdx, arrThinStringIdx)
        Case COMMAND_CHECKCELL_WIDEMARKS
            flgCheckOK = Check_WideToThin_Mark(strCellValue, arrWideStringIdx, arrThinStringIdx)
        Case COMMAND_CHECKCELL_WIDECOMMA
            flgCheckOK = Check_WideToThin_Comma(strCellValue, arrWideStringIdx, arrThinStringIdx)
        Case Else
        
    End Select
    
    If flgCheckOK Then
    Else
        GoTo ExitProc
    End If
    
    '全角チェック
    For lCnt = 0 To UBound(arrWideStringIdx)
        If objWs.Cells(lRow, lCol).Characters(arrWideStringIdx(lCnt), 1).Font.Color = COLOR_PINK Then
            objWs.Cells(lRow, lCol).Characters(arrWideStringIdx(lCnt), 1).Font.Color = 0
        ElseIf objWs.Cells(lRow, lCol).Characters(arrWideStringIdx(lCnt), 1).Font.Color = 0 Then
            objWs.Cells(lRow, lCol).Characters(arrWideStringIdx(lCnt), 1).Font.Color = COLOR_PINK
        Else
        End If
    Next
    '半角チェック
    For lCnt = 0 To UBound(arrThinStringIdx)
        If objWs.Cells(lRow, lCol).Characters(arrThinStringIdx(lCnt), 1).Font.Color = COLOR_BLUE Then
            objWs.Cells(lRow, lCol).Characters(arrThinStringIdx(lCnt), 1).Font.Color = 0
        ElseIf objWs.Cells(lRow, lCol).Characters(arrThinStringIdx(lCnt), 1).Font.Color = 0 Then
            objWs.Cells(lRow, lCol).Characters(arrThinStringIdx(lCnt), 1).Font.Color = COLOR_BLUE
        Else
        End If
    Next
    
    CheckCell_WideThin = True
    
ExitProc:
    Exit Function
ErrProc:
    Call ErrFunc(Err, "CheckCell_WideThin")
    Resume ExitProc
End Function

'機種依存文字の判別
'機種依存文字のインデックスを返す。
Private Function CheckLetter_WithOut_OSIncluded(ByVal strCheck As String, _
                                                ByRef arrErrStringIdx() As Long) As Boolean
    CheckLetter_WithOut_OSIncluded = False
    
    Dim lCheckLength As Long
    Dim lCharacter As Long
    Dim lIdx As Long
    Dim lCnt As Long
    
    On Error GoTo ErrProc
    
    lCheckLength = Len(strCheck)
    
    lCnt = 0                        'カウンターをリセット
    lIdx = 0                        '配列のインデックスをリセット
    ReDim arrErrStringIdx(lIdx)     '配列をリセット
    
'   Excelの"Asc"はSignedで正負を含む10進数を返します。
'   1:NEC選定特殊文字   -30823 ~ -30912
'   2:IBM選定特殊文字   -1472 ~ -949
    For lCnt = 1 To lCheckLength
        lCharacter = Asc(Mid(strCheck, lCnt, 1))
        If (lCharacter <= -30823 And lCharacter >= -30912) Or (lCharacter <= -949 And lCharacter >= -1472) Then
            ReDim Preserve arrErrStringIdx(lIdx)    '配列をリセット
            arrErrStringIdx(lIdx) = lCnt            '配列に機種依存文字のインデックスをセット[~文字目]
            lIdx = lIdx + 1
        End If
    Next
    
    If lIdx > 0 Then
        CheckLetter_WithOut_OSIncluded = False
    Else
        CheckLetter_WithOut_OSIncluded = True
    End If
ExitProc:
    Exit Function
ErrProc:
    Call ErrFunc(Err, "CheckLetter_WithOut_OSIncluded")
    Resume ExitProc
End Function

'アルファベットチェック
Private Function Check_WideToThin_Alphabet(ByVal strCheck As String, _
                                           ByRef arrWideStringIdx() As Long, _
                                           ByRef arrThinStringIdx() As Long) As Boolean
    Check_WideToThin_Alphabet = False
    On Error GoTo ErrProc
    
    Dim lCheckLength As Long
    Dim lCharacter As Long
    Dim lWideIdx As Long
    Dim lThinIdx As Long
    Dim lCnt As Long
    
    lCheckLength = Len(strCheck)
    lCnt = 0
    lWideIdx = 0
    lThinIdx = 0
    ReDim arrWideStringIdx(lWideIdx)
    ReDim arrThinStringIdx(lThinIdx)
    
    'A:65~Z:90/a:97~z:122
    'A:-32160~Z:-32135/a:-32127~z:-32102
    For lCnt = 1 To lCheckLength
        lCharacter = Asc(Mid(strCheck, lCnt, 1))
        If (lCharacter <= 90 And lCharacter >= 65) Or (lCharacter <= 122 And lCharacter >= 97) Then
            ReDim Preserve arrThinStringIdx(lThinIdx)    '配列をリセット
            arrThinStringIdx(lThinIdx) = lCnt            '配列に半角英字のインデックスをセット[~文字目]
            lThinIdx = lThinIdx + 1
            Check_WideToThin_Alphabet = True
        End If
        If (lCharacter <= -32135 And lCharacter >= -32160) Or (lCharacter <= -32102 And lCharacter >= -32127) Then
            ReDim Preserve arrWideStringIdx(lWideIdx)    '配列をリセット
            arrWideStringIdx(lWideIdx) = lCnt            '配列に全角英字のインデックスをセット[~文字目]
            lWideIdx = lWideIdx + 1
            Check_WideToThin_Alphabet = True
        End If
    Next
ExitProc:
    Exit Function
ErrProc:
    Call ErrFunc(Err, "Check_WideToThin_Alphabet")
    Resume ExitProc
End Function

'数字チェック
Private Function Check_WideToThin_Numeric(ByVal strCheck As String, _
                                          ByRef arrWideStringIdx() As Long, _
                                          ByRef arrThinStringIdx() As Long) As Boolean
    Check_WideToThin_Numeric = False
    On Error GoTo ErrProc
        
    Dim lCheckLength As Long
    Dim lCharacter As Long
    Dim lWideIdx As Long
    Dim lThinIdx As Long
    Dim lCnt As Long
    
    lCheckLength = Len(strCheck)
    lCnt = 0
    lWideIdx = 0
    lThinIdx = 0
    ReDim arrWideStringIdx(lWideIdx)
    ReDim arrThinStringIdx(lThinIdx)
    
    '0:48~9:57
    '0:-32177~9:-32168
    For lCnt = 1 To lCheckLength
        lCharacter = Asc(Mid(strCheck, lCnt, 1))
        If lCharacter <= 57 And lCharacter >= 48 Then
            ReDim Preserve arrThinStringIdx(lThinIdx)    '配列をリセット
            arrThinStringIdx(lThinIdx) = lCnt            '配列に半角数字のインデックスをセット[~文字目]
            lThinIdx = lThinIdx + 1
            Check_WideToThin_Numeric = True
        End If
        If lCharacter <= -32168 And lCharacter >= -32177 Then
            ReDim Preserve arrWideStringIdx(lWideIdx)    '配列をリセット
            arrWideStringIdx(lWideIdx) = lCnt            '配列に全角数字のインデックスをセット[~文字目]
            lWideIdx = lWideIdx + 1
            Check_WideToThin_Numeric = True
        End If
    Next
    
ExitProc:
    Exit Function
ErrProc:
    Call ErrFunc(Err, "Check_WideToThin_Numeric")
    Resume ExitProc
End Function

'記号チェック
Private Function Check_WideToThin_Mark(ByVal strCheck As String, _
                                       ByRef arrWideStringIdx() As Long, _
                                       ByRef arrThinStringIdx() As Long) As Boolean
    Check_WideToThin_Mark = False
    On Error GoTo ErrProc
        
    Dim lCheckLength As Long
    Dim lCharacter As Long
    Dim lWideIdx As Long
    Dim lThinIdx As Long
    Dim lCnt As Long
    
    lCheckLength = Len(strCheck)
    lCnt = 0
    lWideIdx = 0
    lThinIdx = 0
    ReDim arrWideStringIdx(lWideIdx)
    ReDim arrThinStringIdx(lThinIdx)
    
    '+,-,*,=
    '+,-,*,=
    For lCnt = 1 To lCheckLength
        lCharacter = Asc(Mid(strCheck, lCnt, 1))
        
        Select Case lCharacter
            
            Case 42, 43, 45, 61
                ReDim Preserve arrThinStringIdx(lThinIdx)    '配列をリセット
                arrThinStringIdx(lThinIdx) = lCnt            '配列に半角記号のインデックスをセット[~文字目]
                lThinIdx = lThinIdx + 1
                Check_WideToThin_Mark = True
            
            Case -32383, -32388, -32362, -32389
                ReDim Preserve arrWideStringIdx(lWideIdx)    '配列をリセット
                arrWideStringIdx(lWideIdx) = lCnt            '配列に全角記号のインデックスをセット[~文字目]
                lWideIdx = lWideIdx + 1
                Check_WideToThin_Mark = True
            
            Case Else
        
        End Select
        
    Next
    
ExitProc:
    Exit Function
ErrProc:
    Call ErrFunc(Err, "Check_WideToThin_Mark")
    Resume ExitProc
End Function

'カンマチェック
Private Function Check_WideToThin_Comma(ByVal strCheck As String, _
                                        ByRef arrWideStringIdx() As Long, _
                                        ByRef arrThinStringIdx() As Long) As Boolean
    Check_WideToThin_Comma = False
    
    On Error GoTo ErrProc
        
    Dim lCheckLength As Long
    Dim lCharacter As Long
    Dim lWideIdx As Long
    Dim lThinIdx As Long
    Dim lCnt As Long
    
    lCheckLength = Len(strCheck)
    lCnt = 0
    lWideIdx = 0
    lThinIdx = 0
    ReDim arrWideStringIdx(lWideIdx)
    ReDim arrThinStringIdx(lThinIdx)
    
    ',
    '、,
    For lCnt = 1 To lCheckLength
        lCharacter = Asc(Mid(strCheck, lCnt, 1))
        
        Select Case lCharacter
            
            Case 44
                ReDim Preserve arrThinStringIdx(lThinIdx)    '配列をリセット
                arrThinStringIdx(lThinIdx) = lCnt            '配列に半角カンマのインデックスをセット[~文字目]
                lThinIdx = lThinIdx + 1
                Check_WideToThin_Comma = True
            
            Case -32445, -32447
                ReDim Preserve arrWideStringIdx(lWideIdx)    '配列をリセット
                arrWideStringIdx(lWideIdx) = lCnt            '配列に全角カンマのインデックスをセット[~文字目]
                lWideIdx = lWideIdx + 1
                Check_WideToThin_Comma = True
            
            Case Else
        
        End Select
        
    Next

ExitProc:
    Exit Function
ErrProc:
    Call ErrFunc(Err, "Check_WideToThin_Comma")
    Resume ExitProc
End Function

'文字列変換
Private Function Convert_Letter(ByVal objWs As Excel.Worksheet, _
                                ByVal lRow As Long, _
                                ByVal lCol As Long, _
                                ByVal lMode As Long) As Boolean
                                
    Convert_Letter = False
    On Error GoTo ErrProc
    
    Dim strCellValue As String
    Dim lCnt As Long
    Dim lIdx As Long
    Dim arrWideStringIdx() As Long
    Dim arrThinStringIdx() As Long
    Dim strBuffer As String
    Dim strConvBuffer As String
    Dim lCellLength As Long
    Dim flgCheckOK As Boolean
    
    lCnt = 0
    lIdx = 0
    strConvBuffer = ""
    flgCheckOK = False
    
    ReDim arrErrStringIdx(0)
    
    Dim objFont() As tyFontInfo
    
    strCellValue = objWs.Cells(lRow, lCol).value
    lCellLength = Len(strCellValue)
    ReDim objFont(lCellLength - 1)
    
    Select Case lMode
        Case COMMAND_CONVERT_WIDEALPHABET
            flgCheckOK = Check_WideToThin_Alphabet(strCellValue, arrWideStringIdx, arrThinStringIdx)
        Case COMMAND_CONVERT_WIDENUMBERS
            flgCheckOK = Check_WideToThin_Numeric(strCellValue, arrWideStringIdx, arrThinStringIdx)
        Case COMMAND_CONVERT_WIDEMARKS
            flgCheckOK = Check_WideToThin_Mark(strCellValue, arrWideStringIdx, arrThinStringIdx)
        Case COMMAND_CONVERT_WIDECOMMA
            flgCheckOK = Check_WideToThin_Comma(strCellValue, arrWideStringIdx, arrThinStringIdx)
        Case Else
        
    End Select
    
    If flgCheckOK Then
    Else
        '終了する
        GoTo ExitProc
    End If
    
    For lCnt = 0 To lCellLength - 1
        '書式の保存
        With objWs.Cells(lRow, lCol).Characters(lCnt + 1, 1).Font
            objFont(lCnt).vBold = .Bold
            objFont(lCnt).vColor = .Color
            objFont(lCnt).vColorIndex = .ColorIndex
            objFont(lCnt).vFontStyle = .FontStyle
            objFont(lCnt).vItalic = .Italic
            objFont(lCnt).vName = .Name
            objFont(lCnt).vShadow = .Shadow
            objFont(lCnt).vSize = .Size
            objFont(lCnt).vStrikethrough = .Strikethrough
            objFont(lCnt).vSubscript = .Subscript
            objFont(lCnt).vSuperscript = .Superscript
            objFont(lCnt).vUnderline = .Underline
        End With

        strConvBuffer = Mid(strCellValue, lCnt + 1, 1)
        
        Select Case lMode
            Case COMMAND_CONVERT_WIDEALPHABET
                'アルファベットを全角から半角へ
                For lIdx = 0 To UBound(arrWideStringIdx)
                    If arrWideStringIdx(lIdx) = lCnt + 1 Then
                        strConvBuffer = StrConv(strConvBuffer, vbNarrow)
                    End If
                Next
            Case COMMAND_CONVERT_WIDENUMBERS
                '数字を全角から半角へ
                For lIdx = 0 To UBound(arrWideStringIdx)
                    If arrWideStringIdx(lIdx) = lCnt + 1 Then
                        strConvBuffer = StrConv(strConvBuffer, vbNarrow)
                    End If
                Next
            Case COMMAND_CONVERT_WIDEMARKS
                '記号を全角から半角へ
                For lIdx = 0 To UBound(arrWideStringIdx)
                    If arrWideStringIdx(lIdx) = lCnt + 1 Then
                        strConvBuffer = StrConv(strConvBuffer, vbNarrow)
                    End If
                Next
            Case COMMAND_CONVERT_WIDECOMMA
                'カンマをすべて全角の「,」へ
                For lIdx = 0 To UBound(arrWideStringIdx)
                    If arrWideStringIdx(lIdx) = lCnt + 1 Then
                        strConvBuffer = ","
                    End If
                Next
                For lIdx = 0 To UBound(arrThinStringIdx)
                    If arrThinStringIdx(lIdx) = lCnt + 1 Then
                        strConvBuffer = ","
                    End If
                Next
            Case Else
            
        End Select
        
        strBuffer = strBuffer & strConvBuffer
    Next
    
    '文字列をセルに
    objWs.Cells(lRow, lCol).value = strBuffer
    
    '書式を書き戻す
    For lCnt = 0 To lCellLength - 1
        With objWs.Cells(lRow, lCol).Characters(lCnt + 1, 1).Font
            .Bold = objFont(lCnt).vBold
            .Color = objFont(lCnt).vColor
            .ColorIndex = objFont(lCnt).vColorIndex
            .FontStyle = objFont(lCnt).vFontStyle
            .Italic = objFont(lCnt).vItalic
            .Name = objFont(lCnt).vName
            .Shadow = objFont(lCnt).vShadow
            .Size = objFont(lCnt).vSize
            .Strikethrough = objFont(lCnt).vStrikethrough
            .Subscript = objFont(lCnt).vSubscript
            .Superscript = objFont(lCnt).vSuperscript
            .Underline = objFont(lCnt).vUnderline
        End With
    Next
    
    Convert_Letter = True
ExitProc:
    Exit Function
ErrProc:
    Call ErrFunc(Err, "Convert_Letter")
    Resume ExitProc
End Function

Welcom to My Weblog from Search Engine.

検索エンジンでこられた方、ご来訪ありがとうございます。 そして目的のページに到達するまでにお手数をおかけして申し訳ありません。 右のサイドバーのサイト内検索を使って、目的の情報を検索していただきますようお願いします。

CMS(Blogツール)を、Movable Type から Word Pressに換えた際に昔のサイト構造を変更した所為で、検索エンジンでの検索結果とは違うページにジャンプします。 サイト構造を変更した際は301で1HTMLファイルごとに新しいリンク先を指定するのが正しいやり方なのですが、500ページを超えるため、とてもできる話ではありません。 ですから404エラーでホームページにジャンプするようにしています。

カラオケ

もう半年以上カラオケに行ってないなぁ。

十八番は少ないですが、B’zかアニソンしかないですね。

普段聴く曲が洋楽かジャズ、アニソンなもので。

B’zは今は好きですけど、大学の頃つきあいでカラオケで行くために歌うようになってから聞くようになりました。

アニソンでは、松原美紀の「THE WINNER」(機動戦士ガンダム 0083)、クリスタルキングの「愛をとりもどせ!」(北斗の拳)を原曲キーで歌うのが十八番です。

「愛をとりもどせ」はかなり受けがいいですが、もう若い人たちには分からないようです。

中学のころは、Michael Jacksonの曲を口ずさんでました。

紅茶

UCC BLACK TEA 無糖・甘味料無しの本当のストレートティーです。ダージリンの香りが良く舌に刺さるような渋みもなく非常においしい。

ちなみに写真は、新しく買った smcPENTAX DA 35mmF2.8Macro Limited で撮影しました。

宅配ボックスが必要かな

Amazonの宅配業者が、日通から佐川に変わり、いろいろと手際の悪さに不満がある。 ここ二日連続して荷物の受け取りができなかった。 ちょうど家人が出払ってしまう時間帯に三回も来てしまうという不手際。 伝票には電話番号が書いてあるので、配送する前に連絡をすればこうのようなことは起きない。 だいたい同じ時間帯に来るというのは怠慢だ。 不在連絡票に次の日に届けに来ると書いてあったので家人に待ってもらっていたが、フルタイムで在宅できるわけではない。 佐川は在宅確認をせずに持ってきている。

日通の時は在宅確認してから持ってきていた。 なので入れ違うことが全くなかったし。 アマゾンプライムの意味があるように翌日配達されていた。

Amazonの配送が佐川になってサービス低下

この四月に日通とJPの運送事業が合併して、JP母体で整理が行われたようです。

つまりAmazonでは日通を使っていたのですが、この四月から佐川急便に変わりました。

アマゾンプライムに加入しているにもかかわらず、これまでより配送日数が一日伸びるようになりました。

佐川急便の宅配はいろいろと手際が悪いので好きではないのです。

マクロレンズを注文してたのですが、二日連続して荷物の受け取りで行き違って、結局受け取れていません。

荷物の受け取りだけに、時間がわからず一日拘束されたり、商品を利用したいのに受け取れずに予定が三日狂うのは腹立たしいです。

せめて一回目の不在連絡票に、「次の日に持ってくる」と書かずに在宅時間を連絡するように書いておいてくれたら、二日も待たせられずに済んだのに。

だいたい、前の日にいなかった時間帯に来ても、その日もいない確率が高いことはわかるだろう。

電話番号がわかってるんだから電話してから来いよ。

うちの場合、九割方家に誰かいるんだから。

いつの間にか

PSP用にSony Memory Stick PRO DUO Mark2 16GBを2枚購入して、音楽、ビデオ、写真、Play Station Storeからのゲーム購入などいろいろ入れてみました。

音楽は、PCからSony Sonic Stage Vを使ってWalkmanなどと同じように転送します。 ジャケット画像とかは、元の画像サイズによるのか、アルバム単位では表示されるものの、楽曲単位では表示されたりされなかったりと、いまいちわからないことがあります。 PSPにいれてあるMemory Stickは比較的高速なものですが、PCからの転送速度はあまり速くないです。 サードパーティー製のカードリーダーを使って、Memory Stickを単体でPCに差しても音楽ファイルのAtrac3は転送できないです。