[[20130524132807]] 『ユーザフォームを起動中 エクセルシート編集でき』(ケビン) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『ユーザフォームを起動中 エクセルシート編集できない』(ケビン)
excel2003

ユーザフォームをエクセル起動時に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.