Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


1045 / 13644 ツリー ←次へ | 前へ→

【76630】ユーザフォーム最小化釦について コマちゃん 15/2/20(金) 18:37 質問[未読]
【76631】Re:ユーザフォーム最小化釦について β 15/2/20(金) 20:30 発言[未読]
【76632】Re:ユーザフォーム最小化釦について コマちゃん 15/2/20(金) 21:43 質問[未読]
【76633】Re:ユーザフォーム最小化釦について β 15/2/20(金) 22:31 発言[未読]
【76634】Re:ユーザフォーム最小化釦について コマちゃん 15/2/20(金) 22:55 質問[未読]
【76635】Re:ユーザフォーム最小化釦について β 15/2/21(土) 6:18 発言[未読]
【76636】Re:ユーザフォーム最小化釦について コマちゃん 15/2/22(日) 10:39 お礼[未読]

【76630】ユーザフォーム最小化釦について
質問  コマちゃん E-MAIL  - 15/2/20(金) 18:37 -

引用なし
パスワード
   windows-XP使用時に最小化釦として下記コードを使用していました。
'ユーザーーフォーム最小化釦付記
Declare Function FindWindow Lib "user32" Alias "FindWindowA" _
  (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" _
  (ByVal hwnd As Long, ByVal nIndex As Long) As Long
Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" _
  (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
Declare Function DrawMenuBar Lib "user32" (ByVal hwnd As Long) As Long

処がwindows8.1になり64ビットシステムになり、
Declareステートメントの更新エラーとなります。
如何どのように処置すればよいでしょうか?

【76631】Re:ユーザフォーム最小化釦について
発言  β  - 15/2/20(金) 20:30 -

引用なし
パスワード
   ▼コマちゃん さん:

こんばんは

とりあえず Declare と Function の間に PtrSafe を加えてみてください。

【76632】Re:ユーザフォーム最小化釦について
質問  コマちゃん E-MAIL  - 15/2/20(金) 21:43 -

引用なし
パスワード
   ▼β さん:
>▼コマちゃん さん:
>
>こんばんは
>
>とりあえず Declare と Function の間に PtrSafe を加えてみてください。

早速の回答有難うございます。
質問しましたトラブルは対処できたようですが、

ユーザーフォーム上のボタンは問題なく機能しますが
ワークシート上に作成していたボタンが機能しません。
コードでデバックした場合は正常に動作します。
Excell2013なのですが、WinーXP上では問題なかったのですが
Win8.1で機能しません。
なお、Excell2003はWin8.1でも正常に動作します。
何が問題で、どのように対処すれば良いのでしょうか?
宜しくお願いします。

【76633】Re:ユーザフォーム最小化釦について
発言  β  - 15/2/20(金) 22:31 -

引用なし
パスワード
   ▼コマちゃん さん:

>ユーザーフォーム上のボタンは問題なく機能しますが
>ワークシート上に作成していたボタンが機能しません。

機能しないとは、具体的に、どういった状況でしょうか?
・何も反応しない(つまりイベントが発生しない)
 (この場合、VBE画面で、イミディエイトウィンドウを表示し、そこに
  ?Application.EnableEvents と入力してエンター。その時の結果(True または False)を
  教えてください。

・システムからエラーメッセージが出る。
 (この場合、エラーの番号とメッセージを教えてください)
・その他?

それと、ボタンはActiveXですか?フォームツールですか?
あと、このボタンを受けて処理するコードをアップしてください。

【76634】Re:ユーザフォーム最小化釦について
質問  コマちゃん E-MAIL  - 15/2/20(金) 22:55 -

引用なし
パスワード
   ▼β さん:
>▼コマちゃん さん:
>
>>ユーザーフォーム上のボタンは問題なく機能しますが
>>ワークシート上に作成していたボタンが機能しません。
>
> 機能しないとは、具体的に、どういった状況でしょうか?
>・何も反応しない(つまりイベントが発生しない)
>  (この場合、VBE画面で、イミディエイトウィンドウを表示し、そこに
>  ?Application.EnableEvents と入力してエンター。その時の結果(True または False)を
>  教えてください。
>
>・システムからエラーメッセージが出る。
>  (この場合、エラーの番号とメッセージを教えてください)
>・その他?
>
>それと、ボタンはActiveXですか?フォームツールですか?
>あと、このボタンを受けて処理するコードをアップしてください。

早速の回答有難うございます。
先ずコードは下記の通りです。
Private Sub CommandButton入力_Click()
  UserForm入力.Show vbModeless
  UserForm入力.ComboBox登録者.SetFocus
End Sub

ワークシート上のボタンをクリックしても
全く反応ありません。

コード上に
  Print Application.EnableEvents
を書き加え
デバックしてみると
実行時エラー'438'
オブジェクトは、プロジェクトまたはメソッドをサポート
していません
との、エラーメッセージが表示されます。

宜しくお願いします。

【76635】Re:ユーザフォーム最小化釦について
発言  β  - 15/2/21(土) 6:18 -

引用なし
パスワード
   ▼コマちゃん さん:

状況が、なかなか見えません。

>Print Application.EnableEvents

このコードは、どこに書きましたか?
Private Sub CommandButton入力_Click() このプロシジャの中に書いたとすれば
プロシジャは動いた、つまり、ボタンは反応したということになります。
それと Print Application.EnableEvents というコードそのものは間違っているんですが
参考書等に、このようなコードの紹介があったんですか?
Printメソッドには、オブジェクトが必要です。Debug.Print とか。

いずれにしても、このボタンは、ActiveXのコマンドボタンなんですね?

ところで、UserForm入力 のInitializeルーティンのコードをアップお願いします。
それと、

「コードでデバックした場合は正常に動作します。」

具体的には、どういった操作をすると、「どのように」正常に動作したのでしょう?


>▼β さん:
>>▼コマちゃん さん:
>>
>>>ユーザーフォーム上のボタンは問題なく機能しますが
>>>ワークシート上に作成していたボタンが機能しません。
>>
>> 機能しないとは、具体的に、どういった状況でしょうか?
>>・何も反応しない(つまりイベントが発生しない)
>>  (この場合、VBE画面で、イミディエイトウィンドウを表示し、そこに
>>  ?Application.EnableEvents と入力してエンター。その時の結果(True または False)を
>>  教えてください。
>>
>>・システムからエラーメッセージが出る。
>>  (この場合、エラーの番号とメッセージを教えてください)
>>・その他?
>>
>>それと、ボタンはActiveXですか?フォームツールですか?
>>あと、このボタンを受けて処理するコードをアップしてください。
>
>早速の回答有難うございます。
>先ずコードは下記の通りです。
>Private Sub CommandButton入力_Click()
>  UserForm入力.Show vbModeless
>  UserForm入力.ComboBox登録者.SetFocus
>End Sub
>
>ワークシート上のボタンをクリックしても
>全く反応ありません。
>
>コード上に
>  Print Application.EnableEvents
>を書き加え
>デバックしてみると
>実行時エラー'438'
>オブジェクトは、プロジェクトまたはメソッドをサポート
>していません
>との、エラーメッセージが表示されます。
>
>宜しくお願いします。

【76636】Re:ユーザフォーム最小化釦について
お礼  コマちゃん E-MAIL  - 15/2/22(日) 10:39 -

引用なし
パスワード
   βさん
続けての質問をしていたのですが、表示されません。
最小化問題は一旦は解決したのは事実ですので、
お礼申し上げるとともに、
別の問題として新規投稿させて頂きます。
色々ご指導有難うございました。


▼β さん:
>▼コマちゃん さん:
>
>状況が、なかなか見えません。
>
>>Print Application.EnableEvents
>
>このコードは、どこに書きましたか?
>Private Sub CommandButton入力_Click() このプロシジャの中に書いたとすれば
>プロシジャは動いた、つまり、ボタンは反応したということになります。
>それと Print Application.EnableEvents というコードそのものは間違っているんですが
>参考書等に、このようなコードの紹介があったんですか?
>Printメソッドには、オブジェクトが必要です。Debug.Print とか。
>
>いずれにしても、このボタンは、ActiveXのコマンドボタンなんですね?
>
>ところで、UserForm入力 のInitializeルーティンのコードをアップお願いします。
>それと、
>
>「コードでデバックした場合は正常に動作します。」
>
>具体的には、どういった操作をすると、「どのように」正常に動作したのでしょう?
>
>
>>▼β さん:
>>>▼コマちゃん さん:
>>>
>>>>ユーザーフォーム上のボタンは問題なく機能しますが
>>>>ワークシート上に作成していたボタンが機能しません。
>>>
>>> 機能しないとは、具体的に、どういった状況でしょうか?
>>>・何も反応しない(つまりイベントが発生しない)
>>>  (この場合、VBE画面で、イミディエイトウィンドウを表示し、そこに
>>>  ?Application.EnableEvents と入力してエンター。その時の結果(True または False)を
>>>  教えてください。
>>>
>>>・システムからエラーメッセージが出る。
>>>  (この場合、エラーの番号とメッセージを教えてください)
>>>・その他?
>>>
>>>それと、ボタンはActiveXですか?フォームツールですか?
>>>あと、このボタンを受けて処理するコードをアップしてください。
>>
>>早速の回答有難うございます。
>>先ずコードは下記の通りです。
>>Private Sub CommandButton入力_Click()
>>  UserForm入力.Show vbModeless
>>  UserForm入力.ComboBox登録者.SetFocus
>>End Sub
>>
>>ワークシート上のボタンをクリックしても
>>全く反応ありません。
>>
>>コード上に
>>  Print Application.EnableEvents
>>を書き加え
>>デバックしてみると
>>実行時エラー'438'
>>オブジェクトは、プロジェクトまたはメソッドをサポート
>>していません
>>との、エラーメッセージが表示されます。
>>
>>宜しくお願いします。

1045 / 13644 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free