- ベストアンサー
エクセルで指定範囲の数列数行を固定って出来るのでしょうか?
A列_B列____C列____D列______E列____F列 1_日付____名前____商品名_________累計__ 2_○/○___△△____×××_____×××____何個 3_○/○___△△____●●●_____■■■_____何個 4_○/○___◇◇____■■■_____●●●____何個 ______________________□□□____何個 ______________________◎◎◎____何個 500_○/○___××____◎◎◎ 501_○/○___○○____□□□ 上記のような日計売上表を作っております。 この様な場合E・F列の1~7行の範囲を常に固定? 下にスクロールしてもこの指定範囲が表示できるような方法ってあるものでしょうか?よくインターネット画面で、ある枠がスクロールしても一緒に降りてきますよね?そんな風になんて無理なんでしょうか・・・? エクセルバージョンは2003です。 VBA、マクロ、至ってド素人です。 数百行まで入力しますので、累計が常に見えているようにしたいのです。ウィンドウ枠の固定では入力スペースがほとんど無くなってしまいますので他の方法を希望します。
- みんなの回答 (9)
- 専門家の回答
質問者が選んだベストアンサー
ANo.7さんの方法知りませんでした・・・ でも図形になっているなら、下の方法ができるんでは・・・ どこかのsheetにコピーして、まずtestを実行してください。 後はどこかのセルを選択すると、ウインドウの右端に表を表示します。 Private Sub Worksheet_SelectionChange(ByVal Target As Range) With Shapes("hyou") .Top = Rows(ActiveWindow.ScrollRow).Top .Left = Columns(ActiveWindow.ScrollColumn).Left + ActiveWindow.Width - Shapes("hyou").Width - 50 '50は適当な数字です End With End Sub Sub test() '表を作成 Range("E1:F7").Copy Dim obj As Object With ActiveSheet.Pictures.Paste(Link:=True) .Name = "hyou" .ShapeRange.Fill.Visible = msoTrue .ShapeRange.Line.Weight = 0.75 .ShapeRange.Line.DashStyle = msoLineSolid End With End Sub
その他の回答 (8)
- fumufumu_2006
- ベストアンサー率66% (163/245)
.topと.leftで表の表示位置を決めています。 .Top = Rows(ActiveWindow.ScrollRow).Top + ActiveWindow.Height - .Height - 50 .Left = Columns(ActiveWindow.ScrollColumn).Left + ActiveWindow.Width - .Width - 50 で、多分右下くらいになると思います。 両方の50は、シートの行列番号やスクロールバーやシート見出しなどの表示分の補正のためで、シートの状態で変化するので、適当な値にしてください。 p.s. 既にShapes("hyou")を作ってあれば、上の部分を入れ替えるだけにしてください。 更にtestでShapes("hyou")を作ると、同じ物が2つできてしまいます。 その場合はどちらかを削除してください。
お礼
完全カンペキに理想どおりです。 本当にありがとうございました。 きっと同じ問題に手を焼いてる人が居るはずですし、多くの人に役立つ情報になると思います。 本当に本当にありがとうございました。
- m-0_0-m
- ベストアンサー率0% (0/1)
次の操作で解消すると思いますよ まず、表示して置きたい所を範囲指定してコピーします シフトキーを押しながら編集をクリックし、コマンドの中からリンク貼り付けをクリック 出来上がった図は好きな場所に移動出来ます ウィンドウ枠の固定を実施後、固定した場所に図を移動すれば良いと思います。 リンク貼り付けをしていますので累計も見えるでしょう。 又、大きさも自由に変更できますよ。 補足:貼り付けた図は範囲指定した場所でオーバーラップしているので範囲指定した場所でドラッグすれば判ると思います。 色も変えれます。
お礼
ありがとうございます。 ほぼ思っていたとおりの結果です。 好きな所へ移動可能であり、何より手軽にできるという点が最高。 助かりました、本当にありがとうございました。
- fumufumu_2006
- ベストアンサー率66% (163/245)
こんなのはどうでしょうか? 「ファイル」「新規作成」「ブック」で新しいブックを作り、そこのA1:B7に元ブックのE1:F7を表示するようにする。 新しいBookのサイズを調節して、適当な端に表示する。 p.s. 本当は、新しいブックを常に先頭に表示できればいいのですが・・・
お礼
ありがとうございます。 実はその方法を今までやっていたのです・・・。 やはりこれしか方法は無いのですかね~・・・ 貴重なご意見をありがとうございました。
- denbee
- ベストアンサー率28% (192/671)
次善の策として、「ウィンドウ枠の分割」でどうでしょうか? 固定を使うとスクロールできませんが、ウィンドウの分割であればスクロールが可能です。
お礼
ありがとうございます。 やはりこうするしか術が無いのでしょうね・・・ 何か未知の方法があればと夢見たのですが・・・ もう少しだけ色んな方々のご意見を頂戴して見ようと思います。
- imogasi
- ベストアンサー率27% (4737/17069)
カメラ機能など関係あるかもしれないが、 私は個人的興味から考えてみた。思いついたのは ーー Sheet1に、(表示ーツールバー)コントロールツールボックスの方の、Listboxを1つ貼り付ける。 ListBox1のプロパティ(右クリックで出る)の ListFillRangeにF1:F7を指定する。 例えば F1;F7に 三重 京都 奈良 岡山 和歌山 神戸 とデータがあると、リストボックスにも 三重 京都 奈良 岡山 和歌山 神戸 が出ている。質問では累計らしいが、セルの値と言う意味では同じだろう。リストボックスは2列のデータの表示も出来る。 ーー 一方Sheet1のChangeイベントに Private Sub Worksheet_Change(ByVal Target As Range) Worksheets("Sheet1").ListBox1.Left = Range("F1").Left Worksheets("Sheet1").ListBox1.Top = ActiveWindow.VisibleRange.Top End Sub を作る。 これセルの値を変化させるとその画面の上辺でF列の位置にListBox1が移動する。 質問と似ているが違う点もあるが。 VBAを使わないと VBAを使っても この程度しか出来ないと思う。 100%の自信というわけではないが、相当難しい課題だ。 まして操作では絶望的ではないかな。
補足
ありがとうございます。 ""リストボックスは2列のデータの表示も出来る。"" との事ですが、1行しかなりません・・・(涙) と、次の ""一方Sheet1のChangeイベントに Private Sub Worksheet_Change(ByVal Target As Range) Worksheets("Sheet1").ListBox1.Left = Range("F1").Left Worksheets("Sheet1").ListBox1.Top = ActiveWindow.VisibleRange.Top End Sub"" ですが、シートタブを右クリックして「コード表示」から貼り付けてみましたが≪エラー≫となります。 本当にド素人ですみません。
- shikisaito
- ベストアンサー率52% (257/491)
# [ウィンドウ枠の固定]でいいと思いますが。 1. [ウィンドウ]-[新しいウィンドウを開く]。 2. [ウィンドウ]-[整列]-[左右に並べて表示]などで、 一方のウィンドウにE1:F7を常に表示しておく。 # なぜ入力スペースがほとんどなくなるのかがわからない。
補足
早速の回答ありがとうございます。 実は、E・F列の累計項目が40行はあるのです。 ですから枠固定にすると画面上、入力するスペースが無くなるのです・・・。 何か良い打開策をご存知でしたらお教え下さい。
- denbee
- ベストアンサー率28% (192/671)
「ウィンドウ」→「ウィンドウ枠の固定」でお望みのことができます。 詳細はここで説明するより、実際にご自分で操作してみた方が早くわかります。 なお、解除するには「ウィンドウ」→「ウィンドウ枠の固定の解除」でできます。
補足
早速の回答ありがとうございます。 実は、E・F列の累計項目が40行はあるのです。 ですから枠固定にすると画面上、入力するスペースが無くなるのです・・・。 何か良い打開策をご存知でしたらお教え下さい。
固定したい部分の左した(今回は多分A7)セルをクリックして・・・ ツールバーの「ウインドウ」から「ウインドウ枠の固定」をクリックして下さい。
補足
早速の回答ありがとうございます。 実は、E・F列の累計項目が40行はあるのです。 ですから枠固定にすると画面上、入力するスペースが無くなるのです・・・。 何か良い打開策をご存知でしたらお教え下さい。
補足
最高!! 夢のような事が現実化してかなりびっくりしております。 そこでもう少しだけ詳しく教えて頂きたいのですが、現在出現する表は画面上の右上角に出てきますが、これを「右下角」にすることも可能でしょうか?もし方法があったら教えてください。 VBAはまったく分からないもので、ご面倒おかけします。