カテゴリー
SugiBlog Webエンジニアのためのお役立ちTips

マウスポインター形状の変更

ACCESS VBAにてマウスポインターの形状を変更するには

通常の砂時計などは、用意されたプロパティ・メソッドで変更可能

例)

DoCmd.Hourglass True    '砂時計ポインターにする
Screen.MousePointer = 9 '左右の矢印にする
Screen.MousePointerに設定できるその他の値
既定値 0
矢印 1
I字型 3
上下の矢印 7
左右の矢印 9
砂時計 11

上記以外の形状に変更したい場合

Win32 APIを使用

General部分にAPI関数を定義(モジュールに書く場合はPublicを使用)

Private Declare Function LoadCursor Lib "user32" Alias "LoadCursorA" _
  (ByVal hInstance As Long, ByVal lpCursorName As Long) As Long
Private Declare Function SetCursor Lib "user32" _
  (ByVal hCursor As Long) As Long

ハンドカーソルの定数を定義

Private Const IDC_HAND = 32649& 'ハンドカーソル

マウスカーソルの戻り値(形状)格納用

Private mCursor As Long

フォーム起動時に、ハンドカーソルを取得

Private Sub Form_Load(Cancel As Integer)
  'マウスポインターを手の形にするためのマウスカーソルを取得
  mCursor = LoadCursor(0&, IDC_HAND)
End Sub

マウスオーバー時、マウスポインターをハンドカーソルにしたいコントロールの「マウスボタン移動時」イベントに以下の処理を記述

Private Sub Label_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
  'ラベル上でマウスを手の形にする
  Call SetCursor(mCursor)
End Sub
LoadCursorの第2引数の値
APIでの値(定数) VBAでの値 マウスカーソルの形
IDC_APPSTARTING 32650& 小さい砂時計付の矢印カーソル
IDC_ARROW 32512& 標準の矢印カーソル
IDC_CROSS 32515& 十字カーソル
IDC_HAND 32649& ハンドカーソル
IDC_HELP 32651& 疑問符付の矢印カーソル
IDC_IBEAM 32513& I(縦線)カーソル
IDC_NO 32648& 禁止カーソル
IDC_SIZEALL 32646& 4方向の矢印カーソル
IDC_SIZENESW 32643& 右斜め上の両方向き矢印カーソル
IDC_SIZENS 32645& 上下の両方向き矢印カーソル
IDC_SIZENWSE 32642& 右斜め下の両方向き矢印カーソル
IDC_SIZEWE 32644& 左右の両方向きカーソル
IDC_UPARROW 32516& 上向きの垂直矢印カーソル
IDC_WAIT 32514& 砂時計カーソル
Win32 APIの定数はVBAではそのまま使用できないので、定数として宣言して使用します。
例)
Public Const IDC_APPSTARTING = 32650&
23,833 views

OUTLOOKエラー

Archive等の個人用pstを切断しようとすると、「この操作は失敗しました。 オブジェクトが見つかりませんでした。」というエラーが出て切断できない。

【環境】
OS:Windows XP
Office:2000

【解決方法】
HKEY_USERS内にWindows Messaging Subsystem\Profiles\Microsoft Outlook Internet Settingsを探す。
その中に古い個人用フォルダーのエントリを含むのレジストリ キーを見つけて、キー、右側のウィンドウでを右クリックして [ 削除 ] をクリックします

4,225 views

フォームの値を配列で渡したい時のJavaScriptでのチェック

フォームの値をCGIやPHPなどのプログラムに送信するとき、
name属性に「inq[]」という風に設定する。
その際、JavaScriptでの値チェックの方法。

JavaScript関数を定義

<script type="text/javascript">
<!--//
    var check = function()
    {
        var n = 0;

        for(i = 0; i < document.frm.elements["inq[]"].length; i++)
        {
            // document.frm.elements["inq[]"][i].checked //チェックを判別
            // document.frm.elements["inq[]"][i].value;  //値を取り出す

            if(document.frm.elements["inq[]"][i].checked)
            {
                // IDを利用してラベルのテキストを取得
                // document.getElementById("label_" + document.frm.elements["inq[]"][i].id).innerText
                n++;
            }
        }

        if(n == 0)
        {
            alert("チェックが1つもありません!");
            return false;
        }
        else
        {
            return true;
        }
    }
//-->
</script>

続きを読む…»

28,773 views

SMTPポートブロック

iptablesにPREROUTINGチェインを追加し、PORT25(SMTP)をPORT587(SUBMISSION)へリダイレクト
ルータも587番を開放

$ iptables -N PREROUTING
$ iptables -t nat -A PREROUTING -p tcp --dport 587 -j REDIRECT --to-ports 25
1,780 views

キーボードを正常に認識しない場合

「半角/全角」キーを押すとバッククォートが入力される。
その場合、キー配列がおかしくなっているので、
Alt+半角/全角キーで切り替えることが可能。

2,036 views