質問

80人程度のユーザー向けのWord VBAマクロアプリを開発しています。オフィスのスタッフの離職率が高いため、トレーニングに苦労するため、このプロジェクトに必要な自己要件の1つは、包括的でわかりやすいドキュメントです。ただし、これを補足し、新しいものを試したいときに100ページのドキュメントを開く必要がある初心者を節約するために、コンテキストヘルプを提供するすべてのユーザーフォーム(5つあります)にステータスバーが必要です。ツールチップがうっとうしいと思います。

あまり経験がないので、やりたいと思っていました

本質的に、すべてのステータス文字列を含むファイルがあります。 (これは現在テキストファイルですが、将来、他のスタッフによる編集を容易にするためにスプレッドシートまたはcsvを使用すべきかどうか疑問に思っていました。)すべてのコントロールには、関数getStatus(cID)ファイルを取得し、行を取得してステータスラベルに表示します。また、ラベルがクリック可能かどうか(ヘルプファイルのページにリンクするため)、ラベルの色など、ファイル内の同じ行からいくつかのパラメーターを取得します。

実際にいくつかの質問:

ユーザーフォームが常にファイルを参照している場合、アプリケーションは遅くなりますか?私には気分がいいのですが、私はその中にずっと入りすぎており、そのファイルにアクセスする唯一のユーザーです。 80が常時アクセスします。

MouseMoveはコントロールに最適な方法ですか?代わりに座標を使用すべきですか?

最も重要なことは(できるだけ作業を少なくしなければならないという点で)すべてのコントロールにMouseMoveイベントを持たなくても済むようにする方法がありますか?私は、それぞれ独自の識別子を持つコントロールを数百個ほど持っています(まあ、まだではありませんが、これがそれを行う唯一の方法である場合、それらはそうなります)。フォームがロードされたときに、可能性のあるすべてのステータス行をロードして、コントロールがマウスオーバーされたときにいつでも準備できるようにすることができます。しかし、その後、ロード時間はごくわずかですか?

アイデアや考えを感謝します-特にVBAが既にこれを行うための全範囲の機能を備えており、私が車輪を再発明しようとしている場合は特に。ユーザーにアプリケーション自体がめったに表示されないため、アプリケーションステータスバーを使用できません。

ありがとう!

編集:

これは、データ入力、クリック、およびドキュメント生成の両方のためです。

これは制御された環境であるため、マクロセキュリティの問題は私にとって大きな懸念ではありません。何か問題が発生した場合、それは他の誰かの障害または問題です:)

役に立ちましたか?

解決

このデータ入力アプリですか、それともクリックするだけですか?多くの場合、フォーカスのあるフィールドはマウスが上にあるアイテムと異なるため、これは多くの混乱を引き起こす可能性があります。

常にファイルから読み取ることは、時間とリソースの膨大な浪費です。フォームがロードされるときに、それらを一度だけ配列またはコレクションにロードすることをお勧めします。

On MouseMouseイベントは座標よりも優れています。何も心配することなく移動できるからです。大量のコードですが、コントロール名のリストがある場合は、コードが同一である必要があるため、そのほとんどを生成できるはずです。

ie

Sub Control_MouseMove()
  DisplayStatus(Control)
End sub

他のヒント

この種のヘルプでは、コントロールのStatusTextプロパティとControlTipTextプロパティを検討します。

StatusText この例では、" Age。"という名前のフォームフィールドのステータスバーのヘルプテキストを設定します

With ActiveDocument.FormFields("Age")
    .OwnStatus = True
    .StatusText = "Type your current age."
End With

ControlTipText これは、コントロールのプロパティシートから割り当てることができます。

Private Sub UserForm_Initialize()
    MultiPage1.Page1.ControlTipText = "Here in page 1"
    MultiPage1.Page2.ControlTipText = "Now in page 2"

    CommandButton1.ControlTipText = "And now here's"
    CommandButton2.ControlTipText = "a tip from"
    CommandButton3.ControlTipText = "your controls!"
End Sub
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top