[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『ユーザフォームを起動中 エクセルシート編集できない』(ケビン)
ユーザフォームをエクセル起動時にautoopenで表示させていますが
その場合 ユーザフォームはボタンやテキスト入力できるのですが
エクセルシート側が何も選択できないし 編集できない状態になってます。
ユーザフォームは最前面に置きながら エクセルシート側も編集できるように
するにはどうすればいいのでしょうか?
UserForm1.Show 0 のように書いてみてください。(Showメソッドのヘルプは分かりにくいよね) (みやほりん)
Private Sub CommandButton_OK_Click()
Dim ans As Range Dim combo_name As String
On Error Resume Next
Set ans = Application.InputBox("貼り付け先のセルを選択してください", "コンボボックスの移動先指定", Type:=8)
On Error GoTo 0
If ans Is Nothing Then Exit Sub
Worksheets("Control_LIST").Shapes("ComboBox_Ok").Copy
Application.Goto ans
combo_name = "ComboBox_Ok" + Format(Now(), "YYYYMMDDhhmmss")
With ActiveSheet
.Paste
DoEvents 'おまじない
.Shapes(.Shapes.Count).Name = combo_name
End With
End Sub
(ケビン)
モードレス表示のユーザーフォームは【脆弱で体力がよわっちい】ので、過激な(?)行為で、すぐに消えてしまう。
たとえば、標準モジュールに
Sub Test()
UserForm1.Show vbModeless
End Sub
こんなコードを書いておいて CommandButton_OK_Click の End Sub の直前に
Application.OnTime Now(), "Test"
このコードを一行、これも、おまじないとしていれるとか。
ところで、素早い連続処理をしたとき、Format(Now(), "YYYYMMDDhhmmss") これだけで大丈夫かなぁ? (前スレでいったように、枝番つけたほうが無難だと思うけどね)
(ぶらっと)
ありがとうございます。
できました。
End Sub後に showしてみたのですがだめだったのですが
Application.OnTime Now()で起動すると 表示するんですね。
うーんまさしく おまじまいですね。
また 以下の部分
combo_name = "ComboBox_Ok" + Format(Now(), "YYYYMMDDhhmmss")
下の内容に変更しました。ご指摘有難うございます。
dblTimer = CDbl(Timer)
combo_name = "ComboBox_Ok" + Format(Now(), "YYYYMMDDhhmmss") & Fix((dblTimer - Fix(dblTimer)) * 1000)
(ケビン)
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.