エクセル2003です。次の条件になる関数を教えてください。
知りたいことは、【ひな型】シートのB44に入れる関数です。
現在作成中のブックでは最初のシートが【目次】シート、2番目が【ひな型】シートとなっていて、次のVBAでsheet3から【ひな型】を任意数、生成します。
Sub ひな型コピー()
Set 処理範囲 = Selection.Worksheet.Range(Selection.Address)
For Each 処理セル In 処理範囲
On Error Resume Next
Sheets("ひな型").Copy after:=Sheets(Worksheets.Count)
ActiveSheet.Name = 処理セル.Value
Next 処理セル
End Sub
やりたいことは、新しく作られた2つのシート(sheet3とsheet4)でのセル値参照です。sheet3のB44セルにsheet4のB12を参照したいわけです。ただ、たくさん作られたシート間で参照するのは大変なので、【ひな型】シートのB44セルに最初から入れておけば、というのが願いです。もちろんオートフィルドラッグしていきたいので、1つのセル参照ではありません。http://oshiete.goo.ne.jp/qa/5535868.html にあった関数が一番近いですが後シートのセル参照なのでできません。おわかりになる方、どうぞよろしくお願いします。
No.2ベストアンサー
- 回答日時:
No.1です。
修正しました。
原因はセルに数式を入れる指示にクォーテーションマークが足りていなかったためです。
自分は英数字のシート名で検証していたため問題なかったのですが、日本語(スペース入り)だとダメなようです。
数式がはいるB12セルが黄色になるようにしています。確認後、不要なら削除ください。(該当行はわかるようにしています)
Sub ひな型コピー()
'追加開始
Dim LastSheetName, ActiveSheetName As Variant
Dim FirstFlag As Integer
FirstFlag = 1
'追加終了
Range("i7").Select
Range(Selection, Selection.End(xlDown)).Select
Set 処理範囲 = Selection.Worksheet.Range(Selection.Address)
For Each 処理セル In 処理範囲
On Error Resume Next
Sheets("ひな型").Copy after:=Sheets(Worksheets.Count)
ActiveSheet.Name = 処理セル.Value
'追加開始
ActiveSheetName = ActiveSheet.Name
If FirstFlag = 0 Then
Sheets(LastSheetName).Range("B12").Formula = "='" & ActiveSheet.Name & "'!B44"
Sheets(LastSheetName).Range("B12").Interior.Color = 65535 'この行は不要なら削除
End If
FirstFlag = 0
LastSheetName = ActiveSheet.Name
'追加終了
Next 処理セル
End Sub
はい、思った通りの結果になりました。ありがとうございました。フラッグの使い方を覚えたいと思います。感謝です。
なお、大したことではありませんが、
Sheets(LastSheetName).Range("B12").Formula = "='" & ActiveSheet.Name & "'!B44"は
Sheets(LastSheetName).Range("B44").Formula = "='" & ActiveSheet.Name & "'!B12"に直しました。
No.1
- 回答日時:
質問文のサンプルをベースに、追加しました。
追加した部分がわかるようにしています。確認ですが、sheet3のB44がsheet4のB12を参照するのですよね?(そのように作っています)
Sub ひな型コピー()
'追加開始
Dim LastSheetName As String
Dim FirstFlag As Integer
FirstFlag = 1
'追加終了
Set 処理範囲 = Selection.Worksheet.Range(Selection.Address)
For Each 処理セル In 処理範囲
On Error Resume Next
Sheets("ひな型").Copy after:=Sheets(Worksheets.Count)
ActiveSheet.Name = 処理セル.Value
'追加開始
If FirstFlag = 0 Then
Sheets(LastSheetName).Range("B44") = "=" & ActiveSheet.Name & "!B12"
End If
FirstFlag = 0
LastSheetName = ActiveSheet.Name
'追加終了
Next 処理セル
End Sub
早速ありがとうございます。
ただ、変化なしです。言葉足らずで私の質問の仕方が悪かったかもしれません。
Sub ひな型コピー()の下には次の2行がありました。
Range("i7").Select
Range(Selection, Selection.End(xlDown)).Select
これによりi7セルの下に例えば10個の文字列があったとして、ひな型はひな型シートの後に10個コピーされて、シート名はi7セルの下の10個の文字列になります。(vbaの通りです。当たり前ですよね)
で、やりたいことはシート3以降において、sheet3のB44セルにsheet4のB12が、sheet4のB44セルにsheet5のB12が、sheet5のB44セルにsheet6のB12が・・・、とシートが複数生成されても、前のシートに後のシートのセル値が表示されてほしいわけです。(実は、後で自分で編集しようと思っていまして、できれば前のシートのb44:g63に後のシートのb12:g31のセル値を参照したいのですが。)もう少しおつきあいいただいて、教えていただければ幸いです。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・人生のプチ美学を教えてください!!
- ・10秒目をつむったら…
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・【大喜利】【投稿~9/18】 おとぎ話『桃太郎』の知られざるエピソード
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Excelの「0」だけ非表示、小数...
-
エクセルで1月0日と表示される!!
-
日付が未入力の際はゼロか、空...
-
Excelで複数シートの選択セルを...
-
エクセルで条件に一致したセル...
-
Rangeメソッドは失敗しました。...
-
マクロ 新しいシートにデータ...
-
複数シートの同じセル内容を1シ...
-
EXCELマクロで、シート間でのコ...
-
別シートのセルを絶対参照にする
-
EXCEL リストボックスのRowSouc...
-
エクセルのルビがついたセルを...
-
エクセルで、加筆修正したセル...
-
セルの値と同じ名前のシートを...
-
エクセルで20万行あるシート...
-
エクセルで、勤務表から 日付...
-
VBAで変数に関数式の結果をセッ...
-
(Excel)あるセルに文字を入力...
-
エクセルの文字
-
Excelシートの保護時にデータの...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excelの「0」だけ非表示、小数...
-
日付が未入力の際はゼロか、空...
-
Excelで複数シートの選択セルを...
-
エクセルで1月0日と表示される!!
-
エクセルで条件に一致したセル...
-
Rangeメソッドは失敗しました。...
-
別シートのセルを絶対参照にする
-
シート参照で変数を使いたい(EX...
-
Excelシートの保護時にデータの...
-
複数シートの同じセル内容を1シ...
-
エクセルで複写のように自動入...
-
エクセルの文字
-
Excelでスクロールすると文字が...
-
(Excel)あるセルに文字を入力...
-
Excelのファイル容量が減らない...
-
マクロ 新しいシートにデータ...
-
エクセルで別シートからの最大...
-
ExcelでTODAY関数を更新させな...
-
エクセルのセルに、マウスで選...
-
EXCELマクロで、シート間でのコ...
おすすめ情報