
No.4ベストアンサー
- 回答日時:
No.2 のmatsu_junです。
作業用シートを作ることになってもよろしければ以下参照ください。1) まずは新しいシートを作成してください。シート名は基本的には「DataBase」としていますが
既存シートのシート名とかぶる場合はお好きな名前を付けていただいて結構です。
2) 下の図(図がずれていたらごめんなさい)のように、A列、C列にシート名、B列、D列にセル名を
記入していってください。B列、D列のセル名は、やはり絶対参照($付き)で記入してください。
同じ行同士で値の相互リンクをします。(Sheet1のA1セルと、Sheet2のA2セル・・・)
どれだけ下に追加していってもらってもOKです。
┃ A ┃ B ┃ C ┃ D ┃
━━━╋━━━╋━━━╋━━━╋━━━╋━
1 ┃Sheet1│$A$1 │Sheet2│$A$2 │
━━━╋───┼───┼───┼───┼─
2 ┃Sheet3│$D$5 │Sheet2│$C$1 │
━━━╋───┼───┼───┼───┼─
3 ┃Sheet2│$B$4 │Sheet3│$D$7 │
━━━╋───┼───┼───┼───┼─
4 ┃Sheet1│$E$1 │Sheet3│$E$8 │
━━━╋───┼───┼───┼───┼─
5 ┃ │ │ │ │
━━━╋───┼───┼───┼───┼─
3) 作業用シートが表示されるのを嫌うのであれば、メニューから、
「書式(O)」-「シート(H)」-「表示しない(H)」を選択し、非表示にしてください。
4) 以下を前回と同じ場所に上書きします。(前のものは消してください)
なお、1)で任意のシート名をつけた場合は、下の
「ここを自由に変更できます」というところを変更してください。
'ここから------------------------------------------------------------------------
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
'ここを自由に変更できます-----------------------------------------------
データ格納シート名$ = "DataBase"
'ここまで自由に変更できます---------------------------------------------
Application.EnableEvents = False
On Error GoTo ERREND
If Sh.Name = データ格納シート名 Then GoTo ERREND
ERow# = Worksheets(データ格納シート名).Cells(65536, 1).End(xlUp).Row
With Worksheets(データ格納シート名).Range("A1:D" & CStr(ERow))
Set x = .Find(Target.Address, LookAt:=xlWhole, MatchCase:=False)
If Not x Is Nothing Then
ATmp = x.Address
If x.Offset(0, -1).Value <> Sh.Name Then
Do
Set x = .FindNext(x)
If x.Address = ATmp Then GoTo ERREND
Loop While (x.Offset(0, -1).Value <> Sh.Name)
End If
End If
Set y = x.Offset(0, (x.Column / 2 - 1.5) * -4)
Worksheets(y.Offset(0, -1).Value).Range(y.Value).Value = _
Worksheets(x.Offset(0, -1).Value).Range(x.Value).Value
End With
ERREND:
Application.EnableEvents = True
End Sub
'ここまで------------------------------------------------------------------------
5) 以上で完成です。相互リンクを追加したい場合は最初に作ったデータベースシートに
追記すればOKです。追記した後にどちらかのセルの値を変更したら、相互リンク先の
セルの値も同期するようになります。
No.3
- 回答日時:
皆さんがマクロを使ったハイレベルな回答を寄せて
いらっしゃるので
ご質問者のお考えとは異なる気がするのですが、
「循環参照」を利用した低レベルな方法を書いておきます。
EXCELのメニューから
[ツール] メニューの [オプション] をクリックし、[計算方法] タブをクリック。
[反復計算] チェック ボックスをオンに。
[最大反復回数]にデフォルトで「100」などと入力されていれば
そのまま変更せず。
[変化の最大値] にデフォルトで「0.001」などと入力されていれば
そのまま変更せず。
OKをクリックして閉じる。
リンクさせべきsheet1のA1とsheet2のB2にそれぞれ
以下のように記述
Sheet1のA1には
=Sheet2!B2
と記述する。すると「0」が表示される。
Sheet2のB1には
=Sheet1!A1
と記述する。すると、こちらも「0」が表示される。
オートフィルを利用するなどして、それぞれのSheet
の対応位置に同様に記述しておく。
このsheetを名前を付けて保存しておく。
この状態でSheet1のA1に数値を入力すると
Sheet2のB2にその値が反映されますし、
Sheet2のB2に数値を入力すると
Sheet1のA1にその値が反映されます。
ただし、このリンクは
Sheet1から
Shett2から
のいずれか1回のみ有効です。
従ってご質問者のケースでSheet1のA1に数値を入力して、
Sheet2のB2に反映された後にB2に新たな数値を入力しても
Sheet1のA1には反映されません。
このためこのSheetを一度使って上書き保存してしまうと効果が
なくなってしまいます。
必ず異なる名前で保存し、再利用するときは最初に保存した
オリジナルなSheetを呼び出して使用する必要があります。
No.2
- 回答日時:
マクロを使えば簡単ですが、試してみてください。
'ここから------------------------------------------------------------------------
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
Application.EnableEvents = False
On Error GoTo ERREND
'ここを自由に変更してください----------------------------------------------------
ShNam1$ = "Sheet1"
ShNam2$ = "Sheet2"
CellNam1$ = "$A$1"
CellNam2$ = "$B$2"
'ここまで変更可能----------------------------------------------------------------
If Sh.Name = ShNam1 And Target.Address = CellNam1 Then
Worksheets(ShNam2).Range(CellNam2).Value = Target.Value
ElseIf Sh.Name = ShNam2 And Target.Address = CellNam2 Then
Worksheets(ShNam1).Range(CellNam1).Value = Target.Value
End If
ERREND:
Application.EnableEvents = True
End Sub
'ここまで------------------------------------------------------------------------
貼り付け方が分からない場合は以下を参照してください
1) 目的のブックを開いたら、Altキーを押しながらF11キーを押し、Microsoft Visual Basicを開く
(他のブック(Excelファイル)は開いていない方が分かりやすいです)
2) 開いたMicrosoft Visual Basicの左側に、「プロジェクト-VBAProject」と書かれた
一見エクスプローラ風のウィンドウがあります。
3) VBAProject (ブック名) の、「Microsoft Excel Object」の、「ThisWorkbook」を
ダブルクリックすると、ウィンドウの右側がグレーから白くなります。
4) 白くなった部分に、上の「ここから」から「ここまで」を貼り付けます。
おまけ
2つのシート名、セル名は自由に変更できます。
ソース中の、「ここを自由に変更してください」と書かれた部分の下4行、
""に囲まれた部分を変更してください。ただし、セル名は$付きのものにしてください。
ありがとうございます。前に教えてくださった方にも質問をしてしまっているのですが、実際はリンクさせたいセルがひとつのシートに複数あります。その場合はどのようにしたら良いかを教えてください。
No.1
- 回答日時:
マクロ(VBA)を利用します。
(他の方法が思いつかないので...)
Bisual Basic Editor を開いて、Sheet1のコードウィンドウに下記のコードをコピペします。
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Row = 1 And Target.Column = 1 Then
Worksheets("Sheet2").Cells(2, 2) = Worksheets("Sheet1").Cells(1, 1).Value
End If
End Sub
同様に、Sheet2のコードウィンドウに下記のコードをコピペします。
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Row = 2 And Target.Column = 2 Then
Worksheets("Sheet1").Cells(1, 1).Value = Worksheets("Sheet2").Cells(2, 2).Value
End If
End Sub
・マクロは自動的に実行されるので、自分での実行は不要です。
・Worksheets("xxx")のxxxには実際のシート見出し名を入力してください。
・Row=xは実際の行番号を指定してください。
・Column=xは列番号を整数で指定します。(C列なら、3)
・Cells(x,x)は、Cells(行番号、列番号)です。
実際に環境に合わせて、シート見出しの名前や行番号・列番号を変更してお使い下さい。
ありがとうございます。リンクしました。ただ、実際はリンクさせたい箇所が複数個あります。その場合はどのようにしたら良いか、よろしければ教えてください。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) フォルダ内のエクセルファイルを開かずにデータ採取する関数式 2 2022/12/22 22:15
- Excel(エクセル) エクセルで 例えばA1のセルに1+1 と入力すると B1のセルに2 と答えが出る関数があったと思いま 8 2022/12/16 20:57
- 日本語 読解力の質問です(Excel含む) 12 2022/08/02 13:25
- Excel(エクセル) エクセル関数の質問 5 2022/04/20 09:46
- Excel(エクセル) エクセル VBA セルの結合 2 2022/09/07 11:48
- Excel(エクセル) エクセルでセルに何らかの文字が入力されたらそれを任意の数値として認識させる方法がしりたいです。 3 2023/03/16 20:19
- Excel(エクセル) エクセルで、特定のセルの内容を更新すると、別の特定セルに 更新日付が自動的に表示させる方法はあります 1 2022/11/14 21:03
- Excel(エクセル) エクセルで、例えばAのセルの値次第で、Bのセルの値を自動入力する方法を教えてください。 2 2022/08/02 12:10
- Excel(エクセル) ユーザー定義について質問です。 2 2023/06/28 13:21
- Excel(エクセル) エクセル・セルに数式を入力してセル指定計算 2 2023/04/21 12:46
このQ&Aを見た人はこんなQ&Aも見ています
-
あなたの「必」の書き順を教えてください
ふだん、どういう書き順で「必」を書いていますか? みなさんの色んな書き順を知りたいです。 画像のA~Eを使って教えてください。
-
「これはヤバかったな」という遅刻エピソード
寝坊だったり、不測の事態だったり、いずれにしても遅刻の思い出はいつ思い出しても冷や汗をかいてしまいますよね。
-
もし10億円当たったら何に使いますか?
みなさんの10億円プランが知りたいです!
-
人生でいちばんスベッた瞬間
誰しも、笑いをとろうとして失敗した経験があると思います。
-
「これいらなくない?」という慣習、教えてください
現代になって省略されてきたとはいえ、必要性のない慣習や風習、ありませんか?
-
EXCEL2007で2つのシートのどっちのセルに入力しても相互できるようにしたい
Excel(エクセル)
-
Excelでハイパーリンクでジャンプした後、リンク元の位置に戻りたい
Excel(エクセル)
-
Excelのシート別でのセルのリンク方法
Visual Basic(VBA)
-
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・一番好きなみそ汁の具材は?
- ・泣きながら食べたご飯の思い出
- ・「これはヤバかったな」という遅刻エピソード
- ・初めて自分の家と他人の家が違う、と意識した時
- ・いちばん失敗した人決定戦
- ・思い出すきっかけは 音楽?におい?景色?
- ・あなたなりのストレス発散方法を教えてください!
- ・もし10億円当たったら何に使いますか?
- ・何回やってもうまくいかないことは?
- ・今年はじめたいことは?
- ・あなたの人生で一番ピンチに陥った瞬間は?
- ・初めて見た映画を教えてください!
- ・今の日本に期待することはなんですか?
- ・集中するためにやっていること
- ・テレビやラジオに出たことがある人、いますか?
- ・【お題】斜め上を行くスキー場にありがちなこと
- ・人生でいちばんスベッた瞬間
- ・コーピングについて教えてください
- ・あなたの「プチ贅沢」はなんですか?
- ・コンビニでおにぎりを買うときのスタメンはどの具?
- ・おすすめの美術館・博物館、教えてください!
- ・【お題】大変な警告
- ・洋服何着持ってますか?
- ・みんなの【マイ・ベスト積読2024】を教えてください。
- ・「これいらなくない?」という慣習、教えてください
- ・今から楽しみな予定はありますか?
- ・AIツールの活用方法を教えて
- ・最強の防寒、あったか術を教えてください!
- ・歳とったな〜〜と思ったことは?
- ・モテ期を経験した方いらっしゃいますか?
- ・好きな人を振り向かせるためにしたこと
- ・スマホに会話を聞かれているな!?と思ったことありますか?
- ・それもChatGPT!?と驚いた使用方法を教えてください
- ・見学に行くとしたら【天国】と【地獄】どっち?
- ・これまでで一番「情けなかったとき」はいつですか?
- ・この人頭いいなと思ったエピソード
- ・あなたの「必」の書き順を教えてください
- ・14歳の自分に衝撃の事実を告げてください
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
【マクロ】1回目の実行後、2...
-
エクセル内に読み込んが画像の...
-
Excelのメニューについて
-
Excelで作成した出欠表から日付...
-
Excel 偶数月の15日(土日祝...
-
Excelの数式について教えてくだ...
-
勤務外時間を出す表が作りたい
-
VLOOKUP FALSEのこと
-
エクセルの数式について教えて...
-
【マクロ】参照渡しについて。...
-
Excel 日付の表示が直せません...
-
Excelの条件付書式について教え...
-
マクロを実行すると、セル範囲...
-
【マクロ】参照渡しとモジュー...
-
【マクロ】シート追加時に同じ...
-
Excelファイルを開くと私だけVA...
-
Excelのデーターバーについて
-
エクセルの設定、特定の列以降...
-
別のシートの指定列の最終行を...
-
エクセル 同じ行の隣り合う数字...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
【マクロ】重複する同じ行を、...
-
Excelの条件付き書式のコピーと...
-
vba 印刷設定でのカラー印刷と...
-
VBA の単語の意味を教えて下さい。
-
Excel 日付の表示が直せません...
-
エクセル 同じ行の隣り合う数字...
-
エクセル条件付き書式について。
-
エクセルの数式につきまして
-
ファイル名の変更
-
エクセル 数字のみ抽出につて
-
Excelの開始ブックを固定したい...
-
エクセルの数式について教えて...
-
エクセルのセルをクリックする...
-
=INDIRECT(RIGHT(CELL("filenam...
-
エクスプローラーで見ることは...
-
Excelの関数で質問です
-
至急お願いいたします 屋上の備...
-
エクセルでセルに入力する前は...
-
関数を教えて下さい
-
Excel 関数での質問です
おすすめ情報