Excel VBA質問箱 IV

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

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


11365 / 13646 ツリー ←次へ | 前へ→

【16500】シートの非表示と不具合 はっしー 04/7/30(金) 12:55 質問[未読]
【16501】Re:シートの非表示と不具合 IROC 04/7/30(金) 13:09 回答[未読]
【16503】Re:シートの非表示と不具合 はっしー 04/7/30(金) 13:46 質問[未読]
【16504】Re:シートの非表示と不具合 Asaki 04/7/30(金) 14:11 回答[未読]
【16502】Re:シートの非表示と不具合 Asaki 04/7/30(金) 13:35 回答[未読]
【16505】Re:シートの非表示と不具合 はっしー 04/7/30(金) 14:31 発言[未読]
【16506】Re:シートの非表示と不具合 Asaki 04/7/30(金) 14:55 回答[未読]
【16509】Re:シートの非表示と不具合 はっしー 04/7/30(金) 16:23 お礼[未読]

【16500】シートの非表示と不具合
質問  はっしー  - 04/7/30(金) 12:55 -

引用なし
パスワード
   いつもお世話になっております m(_ _)m。

あるシートを非表示にしていて、そのシートをマクロでアクティブにして、セルの値を取得すると、フォームの表示がおかしくなるみたいです(残像が残る、unload Meをしても消えない等)。

実は非表示のシートのセルにパスワードを保存していて、そのパスワードの受け渡しをしたいのですが、物がパスワードなのでユーザーから見えないようにしたいのです。
なにかいい解決方法はありませんでしょうか。
よろしくお願いいたします。
(m;_ _)m

【16501】Re:シートの非表示と不具合
回答  IROC  - 04/7/30(金) 13:09 -

引用なし
パスワード
   >あるシートを非表示にしていて、
>そのシートをマクロでアクティブにして、セルの値を取得すると、
シートをアクティブにしなくても、セル値は取得できます。

>フォームの表示がおかしくなるみたいです
>(残像が残る、unload Meをしても消えない等)。
コードを見ないと判断できません。


>実は非表示のシートのセルにパスワードを保存していて、
>そのパスワードの受け渡しをしたいのですが、
>物がパスワードなのでユーザーから見えないようにしたいのです。
マクロのコードの中に記述出来ないのでしょうか?

受け渡しなら「変数」で良いかと思います。

【16502】Re:シートの非表示と不具合
回答  Asaki  - 04/7/30(金) 13:35 -

引用なし
パスワード
   こんにちは。

表示系のトラブルは、
Application.ScreenUpdating = True
の処理で発生しやすいようですが、関係ありませんか?

【16503】Re:シートの非表示と不具合
質問  はっしー  - 04/7/30(金) 13:46 -

引用なし
パスワード
   IROCさん、早速ありがとうございます。

説明不足ですいません。
シートに書き込んだり消したりの作業が発生するので、どうしてもシートをアクティヴにせざろうえないようです。
また、ブックを閉じたあともパスワードを保存して、次回ブックを開くときにパスワードによってブックに対してできる作業の権限を決めたり、開くフォームの種類を変えたり、ということをしています。
ですので、変数に保存するだけではだめみたいです(~ヘ~;)。

ちなみにコードはこんな感じです。

'ブックを開いて、ある列に数値が入力されているか調べます。
'その数値によってコントロールしています
’ワークシートkanriは非表示になっています。
Private Sub UserForm_Activate()

Workbooks(bookmei).Worksheets("kanri").Activate
Range("c65536").End(xlUp).Select
If ActiveCell = "" Then
  lblsakusei1 = 1
Else
  lblsakusei1 = Selection.Row + 1
End If

End Sub

'中略

Private Sub cmdsakuseiteisei_Click()

'ボタンをクリックして処理をした後、フォームを消して、セルに入力されている値によって次に開くフォームを決めています。

Select Case Workbooks(bookmei).Worksheets("enquete").Cells(mondaibangou + 1, 3)

  Case Is = 1
    Unload Me
    UserForm6.Show
  Case Is = 2
    Unload Me
    UserForm6.Show
  Case Is = 3
    Unload Me
    UserForm7.Show
End Select

End Sub


どうも、次のフォームを開いた瞬間からおかしくなっているようなのですが(。。?)。

【16504】Re:シートの非表示と不具合
回答  Asaki  - 04/7/30(金) 14:11 -

引用なし
パスワード
   ↓これではダメなんでしょうか?
Private Sub UserForm_Activate()
  With Workbooks(bookmei).Worksheets("kanri").Range("c65536").End(xlUp)
    If .Value = "" Then
      lblsakusei1 = 1
    Else
      lblsakusei1 = .Row + 1
    End If
  End With
End Sub

【16505】Re:シートの非表示と不具合
発言  はっしー  - 04/7/30(金) 14:31 -

引用なし
パスワード
   Asaki様、いつもお世話になっております。
ご教示いただいたコードでまったく問題ありません。

私の説明不足で恐縮ですが、例えば

Select Case modef
  Case Is = 5
    Workbooks(bookmei).Worksheets("enquete").Activate
    Range("a65536").End(xlUp).Offset(1).Select
    ActiveCell.Value = Selection.Row - 1
    ActiveCell.Offset(0, 1).Select
    ActiveCell.Value = txtsentakutitle
    ActiveCell.Offset(0, 1).Select
などのコードがあって(シートenrueteは非表示になっております)、いずれにせよシートをアクティブにすることからは避けられません(今の私の技術では)。

>Application.ScreenUpdating

あたりに解決のヒントが隠れていそうです。
ありがとうございます。

というか、表示、非表示に関係なく不具合が発生するようになってしまって、ちょっと収拾がつかなくなってきています。
あああああ(TT; )( ;TT)。なんなんだろう。

【16506】Re:シートの非表示と不具合
回答  Asaki  - 04/7/30(金) 14:55 -

引用なし
パスワード
   わたしがUpしたコードと、もともとはっしー さんがご提示になったコードを見比べて、
ご研究いただいて、Activate/Select しないように、コードを書き換える方が、後々よさそうです。
すぐには難しいかもしれませんが、上位オブジェクトをきちんと指定した方が、
誤動作の原因になりにくいと思います。

>Select Case modef
>  Case Is = 5
>    Workbooks(bookmei).Worksheets("enquete").Activate
>    Range("a65536").End(xlUp).Offset(1).Select
>    ActiveCell.Value = Selection.Row - 1
>    ActiveCell.Offset(0, 1).Select
>    ActiveCell.Value = txtsentakutitle
>    ActiveCell.Offset(0, 1).Select

Select Case modef
  Case 5
    With Workbooks(bookmei).Worksheets("enquete").Range("a65536").End(xlUp).Offset(1)
      .Value = .Row -1
      .Offset(,1).Value = txtsentakutitle
    End With

【16509】Re:シートの非表示と不具合
お礼  はっしー  - 04/7/30(金) 16:23 -

引用なし
パスワード
   Asaki様ありがとうございました。
ご教示いただいた内容(select,activを避ける)で組みなおしたところ、不具合が解消されました。

いつもお世話になって恐縮ですm(._.)m。

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