Excel VBA質問箱 IV

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

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


29606 / 76732 ←次へ | 前へ→

【52405】処理順番が逆転してしまいます
質問    - 07/11/13(火) 13:02 -

引用なし
パスワード
   お世話になります。昨日初めてUserFormにトライしてみましたがうまくいきません。
内容は、指示命令の順番と実際の画面表示の順番が逆転するとうい現象がおきたことです。

『目的とこれまでの方法』 今は下記の(1)(3)をマクロ処理しています
(1)スライドショーをしながら個々の写真のファイル名を取得
(2)取得したファイル名の隣のセルに手作業で「削除」「A」「B」などを記入
(3)(2)の情報により指定フォルダーへの移動、削除などを実施、ファイル整理する

『やりたいこと』
上記の(1)〜(3)を一括で行ないたい・・・今回の質問は(1)〜(2)について
写真を見ながら次ぎのファイル操作への情報をコマンドボタンでシートへ入力したい。

『問題点★とこれまでの検証』
・UserForm1 Showを無効にした下記コードの Sub スライドショー() は正常稼動します

・★UserFormを作成し(コマンドボタン3個だけ)、マクロ稼動すると
「情報入力」→「UserForm表示」→「コマンドボタン押す」→「写真表示」→「UserForm表示」→以下省略
という順番の画面表示になり、目的の「写真を見てから情報入力」が出来ません。

・UserForm1 Show にブレークポイントを設定して画面を確認すると
「情報入力」→「写真表示」→「UserForm」→「コマンドボタン押す」→「写真表示」→省略
という順番で目的の順番に合っています。

なぜ、デパック処理と一括処理で画面表示の順番が変わるのかがわかりません。
初めてのUserFormで、目的の流れにするにはどうしたらよいのか分りません。
宜しくお願いします。
またデパック処理で困ったのですが、UserFormのコードを確認しながらシート画面を確認しようとしたら、画面切り替えが出来ませんでした。
これは正常なんでしょうか?UserFormのコードから抜け出すと大丈夫なんですが・・・。
恥ずかしい内容ですが、まわりに経験者もなく、本にも書いていませんでした。
以上、2点ご教授願います。

Sub スライドショー()

Dim FileName As String
Dim i As Integer, myFile As String
Dim intStr As String, strMsg As String, theVar As Integer
Dim wid As Integer, takasa As Integer, Ratio As Double

Sheets("データー").Select
  Columns("A:C").Clear
    Application.Goto reference:=Worksheets("表示板").Cells(1, 1), Scroll:=True

strMsg = "フォルダー名を入力。"
  intStr = InputBox(strMsg)
    If intStr = "" Then: Exit Sub
      Sheets("データー").Range("A1").Value = intStr
    theVar = MsgBox("拡大しますか、原寸表示しますか?" & Chr(1) & Chr(13) & _
      "はい→拡大  いいえ→原寸", vbYesNo)
  
Application.DisplayFullScreen = True
 
i = 1
 
FileName = Dir("C:\My Documents\仮保管写真\" & intStr & "\*.*")
 
Do While FileName <> ""
  myFile = FileName
  
  Application.ScreenUpdating = False
  Worksheets("表示板").Activate
  
If theVar = 6 Then
With ActiveSheet.Pictures.Insert("C:\My Documents\仮保管写真\" & intStr & "\" & myFile)
  .Top = Range("A1").Top
  .Left = Range("A1").Left
  .ShapeRange.LockAspectRatio = msoTrue
  .Width = 680
  .Height = 550
End With
Else
With ActiveSheet.Pictures.Insert("C:\My Documents\仮保管写真\" & intStr & "\" & myFile)
  .Top = Range("A1").Top
  .Left = Range("A1").Left
  .ShapeRange.LockAspectRatio = msoTrue
 ' .Width = 680
 ' .Height = 550
End With
End If

UserForm1.Show

  Application.ScreenUpdating = True
  Sheets("データー").Cells(i + 1, 1).Value = i
  Sheets("データー").Cells(i + 1, 2).Value = FileName
  
      Worksheets("表示板").Activate
      Application.Wait (Now + TimeValue("00:00:03"))
      ActiveSheet.Pictures(1).Delete
   
      FileName = Dir()
  
    i = i + 1
 Loop
 
MsgBox "終了しました"
Application.DisplayFullScreen = False
Sheets("目次").Select

End Sub

Private Sub UserForm_Initialize()

 With UserForm1
  CommandButton1.Caption = "A級"
  CommandButton2.Caption = "B級"
  CommandButton3.Caption = "×"
 End With
 
  With UserForm1
  .StartUpPosition = False
  .Top = 400
  .Left = 650
End With
End Sub

Private Sub CommandButton1_Click()
Dim myTag As String

myTag = CommandButton1.Caption
Sheets("データー").Select
Range("C65536").End(xlUp).Offset(1, 0).Select
Selection.Value = myTag
UserForm1.Hide
End Sub

Private Sub CommandButton2 、3は省略

1 hits

【52405】処理順番が逆転してしまいます 07/11/13(火) 13:02 質問
【52408】Re:処理順番が逆転してしまいます Jaka 07/11/13(火) 14:30 発言
【52412】Re:処理順番が逆転してしまいます 07/11/13(火) 15:36 発言
【52416】Re:処理順番が逆転してしまいます Jaka 07/11/13(火) 16:52 発言
【52419】Re:処理順番が逆転してしまいます 07/11/13(火) 17:31 お礼
【52420】Re:処理順番が逆転してしまいます 07/11/13(火) 18:40 お礼
【52426】Re:処理順番が逆転してしまいます Jaka 07/11/14(水) 9:20 発言
【52469】Re:処理順番が逆転してしまいます 07/11/15(木) 11:09 お礼

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