Excelでレポートアプリケーションを作成しています。一部のシートで、常に表示したいヘッダーの複数の行があります。したがって、当然のことながら、Excelのフリーズペイン機能を使用して、これらの行を上部でフリーズしています。
問題は、ユーザーが下にスクロールするか、既に下にスクロールされているレポートを見つけた場合、ユーザーがスクロールバーまたは行番号を調べない限り、上に隠れているデータが他にあることはすぐにはわかりません。
ヘッダーの後ろにデータが隠れていることをユーザーに視覚的に示す良い方法を知っていますか?
スクリプトの実装が必要になる可能性のあるアイデアを受け入れます。デザインのアイデアを集めることにもっと興味があります。後で実装する方法がわかります。
これが私が実装したもので、他の人がここで提案した優れたアイデアに触発されたものです。
ヘッダー行の下に2つのハーフハイト行があり、その間でペインがフリーズしているため、一番上の行は常にそこにあり、一番下の行はスクロールすると消えます。一番上の行には、行をまたぐ「/ \/\/\」の行があり、青色で、ハーフハイトに収まるサイズになっています。下の方には、「\/\/\ /」という同様の行があります。その結果、スクロールしないと、ヘッダーとデータの間に青いひし形の線が表示され、下にスクロールすると、青い山形の線が表示されます。
ここでの主な問題は、実際には「フリーズしたペインがフリーズしていることを視覚化する方法」ではありません。
その部分は簡単です。灰色の背景と太い境界線を追加すれば、途中で完了です:-)
見た目を変えてタイトルっぽくします。
あなたの本当の質問は:「一番上の行の上にもっとデータがあることをどのように視覚化しますか?」
そして質問は、Excelの固定された一番上の行だけに当てはまるわけではありません。その質問は、他の状況でも同様です。
(これまでにいくつかのリンクをたどったことはありますが、しばらくすると、以前と同じWebページで、別の#Nameセクションにいることに気づきました。これを試してください: http://en.wikipedia.org/ wiki/Microsoft_Excel#File_formats 。ページの真ん中にいることをどうやって知るのですか?)
上記の何かがあることを視覚化するbest方法は、そのコンテンツの少しを表示することです。したがって、ユーザーが最上位のものはコンテンツの始まりであると信じないようにします。
対
残念ながら、Excelは行全体をスクロールするだけなので、上の行のコンテンツの半分を表示することは不可能です(または私は間違っていますか?)。私が考えることができる唯一の(本当に不完全な)回避策は、2つのセルを垂直にマージすることです。そうすれば、上の行のコンテンツの半分が表示される可能性があります。ユーザーに間違いはありません。
上にあることを視覚化できるもう1つの方法は、 閉鎖に関するゲシュタルトの法則 を使用して、可視領域の上の閉じていない領域の感覚をユーザーに与えることです。
->
(見た目が悪いので申し訳ありません。もう少し作業を検討してください。):-)
また、これは表示しているコンテンツとユーザーが実行しているタスクに大きく依存することも付け加えておきます。ユーザーが番号順に並べられたアイテムまたはアルファベット順に並べ替えられた名前のリストを表示している場合、彼はwill上にさらに名前があることを知っています(特に、探している場合)。もし彼がnotを探しているなら、彼はneedそれが上記のより多くのコンテンツであることを知る必要がありますか?
顧客番号3はどこにあり、Arthurはどこにありますか?
そして
ソリューションには2つの部分があります。
まず、Excelでの動的操作はVBAを使用して行われ、スプレッドシート上のオブジェクトを簡単に操作できます。スプレッドシートに画像要素を配置し、そのクリックイベントにコードを添付することで、シートの状態の変化と暗黙のアクションを視覚的に表すことができます。画像は上矢印にすることができます...
コード例:
Private Sub ImgArrowUp_Click()
With ActiveWindow
.ScrollRow = 1
.ScrollColumn = 1
End With
ActiveSheet.Shapes("ImgArrowUp").Visible = False
End Sub
このコードは上にスクロールして矢印を非表示にします。
2番目の部分は少しトリッキーです-スプレッドシート上のユーザーの位置に基づいて矢印を表示/非表示にするコードが必要です。
ActiveSheet.Shapes("ImgArrowUp").Visible = True/False
ただし、Excelにはスクロールイベントがないため、これを実装する場合は、Windows APIにアクセスする必要があります。ここで説明する実装を使用できます。 ワークシートウィンドウでのスクロールの検出
Googleドキュメントのスプレッドシートに精通しているかどうかはわかりませんが、デフォルトでは5px程度の灰色のバーがあり、上の行がページにロックされていることを示しています。それは私にはかなり直感的に思えます。
行ヘッダーの非表示行の数を示します。さらに上または下にスクロールすると、非表示の行の数の変化を示すように数が変化します。右にスクロールすると、インジケーターが消えます(ゼロになるため)。これは、実際のメインコンテンツ領域に対して私が考えることができる最も視覚的に侵襲的な指標です。
ここでの良い点は、フィルターも配置されていて、スクロールダウンされたためではなくfilterのために一部の行が実際に非表示になっている場合、インジケーターは実際の数を表示できることですビューから非表示の行。
テーブルにアイデアを投げる(しゃれた)ために、各列と他のすべての行の省略記号(行/列の幅に依存)を利用し、より強調されたセパレータに位置する次のようなものを試すことができますペイン間。
ペインが最上部または左端までスクロールされている場合、関連する楕円は非表示になります。つまり、非表示のコンテンツのみを示します。
水平セパレーターをクリックすると、ペインは上部にスナップします(つまり、完全に上にスクロールし、水平楕円が自動的に非表示になります)。同様に、垂直セパレーターをクリックすると、ペインは左にスナップします。
これはExcelのデフォルトの動作です。考えられるすべての状況を「プログラミング」することは不可能だと思います。ユーザーを特定のシート内の特定のセルに移動するリンクを作成できます。これにより、ユーザーがスクロールしなくても、ユーザーを正しい方向に向けることができます。リンクに「上」などの名前を付けると、人々はおそらくそれを理解するでしょう。