• ベストアンサー

Excelのシート同士間で同じ行番号へ移動するには

現在、N年分の日記を、Excelのひとつのbookに集約して日記を作っています。 見やすさを考慮して、一枚のSheetにN年分を集約してみたのですが、大量のセル数になり、逆に目的の月日を探すのが難しくなりました。 そこで、ひとつのbook内で、sheet1、2、3、4… のようにN枚のSheetを使い、Sheet1には平成14年、Sheet2には平成15年…と割り当て、ひとつのSheetの365行を使って1年分の日記を書き込みます。 日記を書き込む時のルールとして、N枚のSheetすべてに対して、同じ行番号に同じ月日を設定します。 一例として、どのSheet(年)をめくっても10行目は毎年1月10日に、200行目は毎年10月17日にします。 これは、その年のsheetをめくれば、同じその日に何があったかを瞬時(縦のスクロールをしなくても)に解るようにしたい、というのが大きな目的です。 そのように、Sheet同士間で同じ月日(行番号)へ飛ばせるようにするには、どのような設定をすればよろしいでしょうか。 回りくどい質問ですみませんが、よろしくお願い致します。

  • bonzin
  • お礼率80% (978/1213)

質問者が選んだベストアンサー

  • ベストアンサー
  • hallo-2007
  • ベストアンサー率41% (888/2115)
回答No.1

質問に対する回答ではありませんが、 現在のシート(一枚のシートにN年分)の方が良いと思います。 それぞれのシートで日付で行をあわせるときにはうるう年に手作業が発生するでしょう。 現在のシートで  A    B 作業列  日付     2008/9/1 ・・・とあれば A列に =TEXT(B2,"mm/dd") といれて日付と一緒に下までコピィしておけば 月と日がでますので、オートフィルターで絞り込めば 同月同日の一覧表になります。 作業列は 年、月、日と準備しておけば自由な組み合わせが出来ると思います。 別案として、別のシートに日付の月と日を入れると 毎年の一覧表が表示される関数を組み込む方法もあると思います。 シートは分けないほうが、よっぽど楽なはずです。

bonzin
質問者

お礼

皆さんから、ご親切にご指導を頂き、ありがとうございました。 色んなアドバイスを頂戴しましたが、いずれも私の手にはおえない難しい技術が必要な内容でした。私のレベルの低さをまたしても痛感しました。 皆さんからのアドバイスで日記に触れているうちに、次の方法(蛇足ですが)で、用が足りそうなことに気づきました。 当日の日記を記入する際、すべてのSheetを開いて、同じ月日の行を画面に出します。日記を記入した後に、当然ファイルを上書きして終わります。翌日、開いて記入する時には、前日に保存した時の状態で、N年同日(近辺)の日記が見ることができます。 私の目的から行くと、殆どそれで用が足りるはずです。 本当は、ご指導頂いた方法でスマートにやりたいのですが、前述の理由もありまして、そんな方法でしばらく走ってみたいと思います。 随分ご面倒をお掛けしてしまい、すみませんでした。 またご指導をよろしくお願いします。

bonzin
質問者

補足

早速ありがとうございます。 「月と日がでますので、オートフィルターで絞り込めば 同月同日の一覧表になります。」とありますが、それがやれれば申し分ありません。しかし、このレベルですと、私の頭では対応できそうもありません。 よろしくお願いします。

その他の回答 (4)

  • fujillin
  • ベストアンサー率61% (1594/2576)
回答No.5

ワークシートのイベントを利用したマクロで処理すれば可能です。 以下の(1)を対象とする各シートのコード欄に記入し、(2)を標準モジュールに記入。 シートを移動した際に、前のシートの表示位置(左上)と拡大(ズーム)の状態を、次のシートに引き継ぎます。 (複数のブックを立ち上げて操作した場合については、検証してません。) (1) Private Sub Worksheet_Activate()  SetDisp End Sub (2) Sub SetDisp() Static s As Worksheet Dim sn As Worksheet, r As Long, c As Long, z As Variant If (s Is Nothing) Or (s Is ActiveSheet) Then  Set s = ActiveSheet  Exit Sub Else  Set sn = ActiveSheet  Application.ScreenUpdating = False  Application.EnableEvents = False  s.Activate  r = ActiveWindow.ScrollRow  c = ActiveWindow.ScrollColumn  z = ActiveWindow.Zoom  sn.Activate  Application.EnableEvents = True  Application.ScreenUpdating = True    If r < 1 Then r = 1  If c < 1 Then c = 1  If z < 20 Then z = 100  Set s = sn  ActiveWindow.Zoom = z  ActiveWindow.ScrollRow = r  ActiveWindow.ScrollColumn = c End If End Sub

bonzin
質問者

お礼

皆さんから、ご親切にご指導を頂き、ありがとうございました。 色んなアドバイスを頂戴しましたが、いずれも私の手にはおえない難しい技術が必要な内容でした。私のレベルの低さをまたしても痛感しました。 皆さんからのアドバイスで日記に触れているうちに、次の方法(蛇足ですが)で、用が足りそうなことに気づきました。 当日の日記を記入する際、すべてのSheetを開いて、同じ月日の行を画面に出します。日記を記入した後に、当然ファイルを上書きして終わります。翌日、開いて記入する時には、前日に保存した時の状態で、N年同日(近辺)の日記が見ることができます。 私の目的から行くと、殆どそれで用が足りるはずです。 本当は、ご指導頂いた方法でスマートにやりたいのですが、前述の理由もありまして、そんな方法でしばらく走ってみたいと思います。 随分ご面倒をお掛けしてしまい、すみませんでした。 またご指導をよろしくお願いします。

  • jellya_a
  • ベストアンサー率35% (12/34)
回答No.4

前年のみさかのぼれるのでいいのであれば ツールバー[挿入]→ハイパーリンクの挿入 この「ドキュメント内」を選択して、 飛ばす先のセル番号、シート名を選択すれば 可能ですが… ただ、シートがかなり重たくなるので あまりお勧めできませんが…

参考URL:
http://www.eurus.dti.ne.jp/~yoneyama/Excel/kansu/hyper.htm
bonzin
質問者

お礼

皆さんから、ご親切にご指導を頂き、ありがとうございました。 色んなアドバイスを頂戴しましたが、いずれも私の手にはおえない難しい技術が必要な内容でした。私のレベルの低さをまたしても痛感しました。 皆さんからのアドバイスで日記に触れているうちに、次の方法(蛇足ですが)で、用が足りそうなことに気づきました。 当日の日記を記入する際、すべてのSheetを開いて、同じ月日の行を画面に出します。日記を記入した後に、当然ファイルを上書きして終わります。翌日、開いて記入する時には、前日に保存した時の状態で、N年同日(近辺)の日記が見ることができます。 私の目的から行くと、殆どそれで用が足りるはずです。 本当は、ご指導頂いた方法でスマートにやりたいのですが、前述の理由もありまして、そんな方法でしばらく走ってみたいと思います。 随分ご面倒をお掛けしてしまい、すみませんでした。 またご指導をよろしくお願いします。

  • mt2008
  • ベストアンサー率52% (885/1701)
回答No.3

1アクション必要ですが、こんなのはどうでしょう。 ます、各シート上1行をウィンドウ枠の固定で固定し、下にスクロールしても必ず表示されるようにしておき、その一行目にコマンドボタンを配置、そのボタンがクリックされたら、以下のマクロをコールするようにします。 Sub Sample()  Dim sSheetname As String  Dim nRow, i As Long  nRow = ActiveWindow.VisibleRange.Row '固定分を除く表示最上行を取得  sSheetname = ActiveWindow.ActiveSheet.Name '現在のシート名  Application.ScreenUpdating = False '画面の更新一時停止  For i = 1 To ThisWorkbook.Sheets.Count 'シートぶんループ   Sheets(i).Select 'シートを選択   Application.Goto Reference:="R" & nRow & "C1", Scroll:=True '表示最上行を指定  Next i  Sheets(sSheetname).Select '元のシートに戻る  Application.ScreenUpdating = True '画面の更新一時停止解除 End Sub 念のため、ボタン側のマクロも…… Private Sub CommandButton1_Click()  Call Sample End Sub これで、シート移動前にボタンを押すと、全てのシートの表示行が同じになります。

bonzin
質問者

お礼

皆さんから、ご親切にご指導を頂き、ありがとうございました。 色んなアドバイスを頂戴しましたが、いずれも私の手にはおえない難しい技術が必要な内容でした。私のレベルの低さをまたしても痛感しました。 皆さんからのアドバイスで日記に触れているうちに、次の方法(蛇足ですが)で、用が足りそうなことに気づきました。 当日の日記を記入する際、すべてのSheetを開いて、同じ月日の行を画面に出します。日記を記入した後に、当然ファイルを上書きして終わります。翌日、開いて記入する時には、前日に保存した時の状態で、N年同日(近辺)の日記が見ることができます。 私の目的から行くと、殆どそれで用が足りるはずです。 本当は、ご指導頂いた方法でスマートにやりたいのですが、前述の理由もありまして、そんな方法でしばらく走ってみたいと思います。 随分ご面倒をお掛けしてしまい、すみませんでした。 またご指導をよろしくお願いします。

bonzin
質問者

補足

早速ありがとうございます。 大変詳細に書いて頂いたのですが、このレベルですと、私の頭ではとても対応できそうもありません。 よろしくお願いします。

  • higekuman
  • ベストアンサー率19% (195/979)
回答No.2

1つのシートに       平成14年  平成15年  平成16年 1月1日 1月2日 1月3日 : : というように作るのはNGですか?

bonzin
質問者

お礼

皆さんから、ご親切にご指導を頂き、ありがとうございました。 色んなアドバイスを頂戴しましたが、いずれも私の手にはおえない難しい技術が必要な内容でした。私のレベルの低さをまたしても痛感しました。 皆さんからのアドバイスで日記に触れているうちに、次の方法(蛇足ですが)で、用が足りそうなことに気づきました。 当日の日記を記入する際、すべてのSheetを開いて、同じ月日の行を画面に出します。日記を記入した後に、当然ファイルを上書きして終わります。翌日、開いて記入する時には、前日に保存した時の状態で、N年同日(近辺)の日記が見ることができます。 私の目的から行くと、殆どそれで用が足りるはずです。 本当は、ご指導頂いた方法でスマートにやりたいのですが、前述の理由もありまして、そんな方法でしばらく走ってみたいと思います。 随分ご面倒をお掛けしてしまい、すみませんでした。 またご指導をよろしくお願いします。

bonzin
質問者

補足

早速ありがとうございます。 最初はそれでやってみました。書いておきましたように、探すのが大変なものですから、分離してみた訳です。 しかし、No.1さんもおっしゃっているように、その方が発展性があれば、元へ戻したいと考えています。 よろしくお願いします。

関連するQ&A

  • エクセルで50行ごとに区切ったデータをシートに分割したい

    エクセルで2000行ほどある一枚のシートを50行ごとに (1-50)(51-100)(101-150)…と分割して、一つずつ 新しいブックで保存する作業があります。 今までは50行ごとにコピーして新しいブックにペーストを 繰り返してましたが、大量にきたもので困ってます。 何か自動化などできないことでしょうか? ご回答お待ちしております。 参考にシートは以下のような形式です。   A  B  C  D 1  a  1   1  1 2  b  1   2  3 3  c  2   3  4 4  d  5   6  7 5  e  7   8  9 6  f  2   3  4  7  h  5   6  7 8  g  8   9  1 9  n  2   3  4 10 n  5   6  7 ・ ・ ・ 50 j  5   6  7

  • Excelシートの行、列番号の表示について

    以下についてよろしくお願いします。 シートの数が10あるブックの事でお尋ねします。問題はその中の2つの行、列番号が他のシートよりフォントの色がやや濃くサイズも大きいです、番号欄の列幅も少し広いです。 又作業ウィンドウのフォントの種類はすべてのシート同じにしていますが、よく見るとこのシートだけ少し違います。 セルのスタイルから行、列番号のフォント及びサイズなどを確認しましたがどのシートも同じです。 検索で下記のサイトも見つけて試行しましたが修正できません。 http://blog.livedoor.jp/himechibi222/archives/51333797.html http://pc.nikkeibp.co.jp/article/NPC/20071119/287554/?P=1 Excel2010 Win7

  • Excel2007で、行番号が消えました。

    添付画像の通り行番号が消えました。わずかが見えていますが、この付近にカーソルを移動すると、上下方向の矢印には変わりますが、左右方向の矢印は出ません。またこのbookの別のsheetと新たに開くsheetでも消えています。しかし別のbookには影響していません。行番号を表示させるにはどうすればよいでしょうか?

  • エクセルのシート結合についてご教示ください。

    エクセルの2003を使っています。 シート1、シート2、シート3という構成のブックが50ファイルほどあります。 この50ファイルをそれぞれのシートごとに結合して、 新たな、シート1、シート2、シート3にそれぞれ50ファイル分のデータが 集約されたブックを作成したいです。 いい方法はないでしょうか?

  • [エクセル]行の挿入、シート間で連携できますか?

    こんにちわ。 販売管理をエクセルで行っております。 その際にちょっと出来ないかな??と思うことが出てきましたので書き込みました。 たとえば、新規作成のBookでSheet1~3があります。 やりたいことは、 Sheet1の4行目と5行目の間に2行を挿入した場合、連携してSheet2やSheet3の4行目と5行目のように同じ箇所に同じ追加した行数分、挿入されて欲しいわけです。 ちょっと説明が難しいな・・・、言いたいこと伝わってますかね?? これが出来たらすっごい効率Upなんですが・・・出来ませんか??

  • エクセルシートの移動

    お尋ねします。 エクセルで、1つのブックに12シート作り、それぞれひと月のデータを 記録しています。(データは同じ位置に入力するようにしています。) 数年分のデータを、1月は1月だけ、移動させて1つのブックにしたいです。それを12か月分やりたいです。 シートの移動とコピーでやる方法はわかりますが、 もっと効率よく移動(コピー)させる方法は ありますか? 教えてください。

  • エクセルSheet1,2を使っての行ごとでの値の返し方

    Sheet1にデータを行ごとに入れていきます。 Sheet2にSheet1のデータを行ごとに返します。 例えば下記のようなデータがSheet1にあります。 行/列  A     B     C    D     登録番号 申込み日  氏名   住所  1  h1234  15年2月  山田太郎 東京都品川区   2  k0022  14年8月  田中次郎 千葉県浦安市   3  m3651  15年1月  鈴木三郎 埼玉県川口市   4  g7890  13年6月  佐藤四郎 神奈川県横浜市 Sheet2のA1にSheet1の行3のデータを返すため3と入れます。登録番号を入れたいので、次のような関数を入れてみましたがうまく出来ませんでした。 =IF(ISNUMBER(A1),INDIRECT(Sheet1!A3&A1),"") 何がいけないのかわかりませんでした。 それに、出来れば登録番号の数字(全て4桁です)返したいのですが、さらに、MIDを使えばよいのですか?説明が十分かどうかわかりませんがアドバイス宜しくお願い致します!

  • Excelの行番号、列番号の表示について

    Excelの行番号と列番号がシートの右側に表示されてしまいます。 行番号1,2,3...の表示がシート右側に、列番号A,B,C...の表示がシートの右側から表示されています。 Excelを起動すると、全てのファイルがこの状態で開きます。 オプションの設定などを確認してみましたが、該当する設定はありませんでした。 通常(シートの左側)の表示に戻したいのですが、方法をご存知の方がいらっしゃいましたら、ご教授願います。

  • 65536行6列×6で10シートを連続して計算

    1つのブックに為替のデータが時系列で年ごとに10シート(10年分)あります。 各シートには項目が「日付、時間帯、始値、高値、安値、終値」と6列あり、それぞれの時系列データは1年分で65536行以上あって縦にすべてを並べることはできないので65536行ごとに分割しています。(2009年が3分割でそれ以前は6分割になっています。) このブックをもとに他のブックのシート1枚へ、終値過去5つ分の単純移動平均値を並べて書き出したいと思っているのですが、 データの最後の行とその次の1行目からをあわせた計算、シートとシートをまたいだ計算がうまくできず困っております。 そこで、シート1のセルA1から数値が入っているシート10の最後のセルまでを1列とみなすようなマクロを作りたいのですが、何か良い方法はございますでしょうか。 エクセルは2003を使っています。 宜しくお願い致します。

  • エクセルでシート1の連続している行をシート2に表示

    こんにちは。エクセルでの作業方法の質問です。 早速ですが、シート1のA列が縦に1日~月末まで月日表示されています。その1日分は2行を結合して1日分となっています。 また1日分の横(B列~Z列)に数字のデータが並んでいます。 その中で1日分の行だけを隣のシート2に表示したいのです。 さらにその表示する1日分のデータ(B列~Z列)は、いわゆる現在の 日付『=TODAY()』のようにエクセルを開いた時に当日のデータをシート1から持ってきて表示(参照?)したいのです。 例えば:シート1に下記のデータがあります。 A   B   C    D    E 7/1  6    3    9    11 7/2  10   2 8 15 7/3 2 1 8 12 今日が7/2だとしたら上記シート1から 7/2 10 2 8 15の行だけをシート2の任意の 行に表示させたいわけです。 翌日になったら、7/3の行をシート2の同じ位置に 表示させたいのです。 前日(この場合7/2のデータは上書きされて7/3のデータ が表示されればよいです。) 以上ですが、質問の表現方法がうまくなくてすみません。 どうか、よろしくお願いします。

専門家に質問してみよう