• ベストアンサー

エクセルで、「1つ前のシート」を指定したいのです。

エクセルで、「1つ前のシート」を指定したいのです。 実際はマクロを使って次々に新しいシートを作っていくという作業の中での話です。 以下の式の'●●●●'の部分を「1つ前のシート」に指定したいのですが、うまくいきません。 =IF(P9>'●●●●'!K15,G1,'●●●●'!J15) ちなみにシート名は任意の「文字列」で特に規則性はありません。 また、参照したい「1つ前のシート」の名前は変数「TW」に格納されています。 ということで「関数」でも「マクロ」でもどちらでも対応可能です。 初歩的な質問ばかりで申し訳ないのですが、ご回答よろしくお願いいたします。 

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

  • ベストアンサー
  • keithin
  • ベストアンサー率66% (5278/7940)
回答No.1

>「1つ前のシート」の名前は変数「TW」に格納されています。 間違いなくシートの「名前」をTWに入れてあるなら,それを使って 数式を入れるセル.formula = "=IF(P9>'" & TW & "'!K15,G1,'" & TW & "'!J15)" などのように。

AMEFURIO
質問者

お礼

ありがとうございました。うまくいきました。 まだまだマクロよりも関数をメインで考えていました。「.formula」はまともに使ったことがありませんでした。 初歩的な質問に丁寧にご回答いただき、ありがとうございました。

その他の回答 (1)

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

VBAの力をかります。 Sub Test() TW = Worksheets(ActiveSheet.Index + 1).Name MsgBox TW End Sub

AMEFURIO
質問者

お礼

やはり関数だけでは無理なようですね。 ありがとうございました。

関連するQ&A

  • EXCELのマクロのシートを指定する方法

    下記にあるEXCELのマクロは、以前こちらのサイトで教えて頂いたマクロです。 私の質問の仕方がまずかったのですが、シートが指定ではなくて、次のシートとなっています。 これを、1列の元データがシート2で新しく貼り付ける場所をシート1という風に変更したくていろいろやってみましたが、EXCELのマクロ自体、初心者で全然できませんでした…。 どなたか教えて頂けないでしょうか?よろしくお願いします。 下記のマクロは 【Excel2003でA列に1行にあるデータ(半角英数字)を次のシートに、1行ずつコピーして、それを5列に振り分けするというマクロです(ただし、コピーは2つずつの時もあります。) 元データ(これをシート2にしたい) ●A列 B列 C列  1  2  3  4  5  ・  ・ 加工後 (シート1に貼り付けたい) ●A列 B列 C列 D列 E列   1   1   2   2   3   3   4   4   5   5  『sub macro1()  dim i as long, j as long, k as long  dim n, m  on error resume next  k = application.inputbox("duplication", type:=1)  if k = 0 then exit sub  activesheet.next.range("A:E").clearcontents  for n = 1 to range("A65536").end(xlup).row   for m = 1 to k    activesheet.next.cells(j + 1, i + 1).value = cells(n, "A").value    i = (i + 1) mod 5    j = iif(i = 0, j + 1, j)   next m  next n  activesheet.next.select end sub』

  • Excelで、Sheetを指定してその近似値を参照させる方法

    Sheet1のA1には計算式(B1+C1)が入っています。 Sheet2からSheet5には、あらかじめ以下のような 数字と文字を羅列してあります。 A列 B列 10 田中 20 鈴木 30 加藤 さらにSheet1のA2には「Sheet3」のように、 参照するSheetを任意に指定して入力すると、 その指定したSheetのA列から、 Sheet1A1の数字の答えに最も近い値を探し出して、 B列の値をSheet1A3に出す方法は? 意味わかりますでしょうか。もういっぱいいっぱいで 頭がパニック状態です。どうかお助けください!

  • 指定のシートにジャンプするエクセルのマクロ

    指定のシートにジャンプする、エクセルのマクロの組み方を教えてください。 シートが100近くあり、「更新」という名前のシートに移動するのが大変手間がかかって困っています。 Ctrボタン+jボタンで「更新」シートに移動するマクロをお願いいたします。 エクセルは2003です。

  • エクセル IF 範囲指定

    エクセル関数についてですが、 Aは入力規則でプルダウンで1~3を選択します。 問題はBですが、IF関数を使ってA列で1もしくは2ないし3のどれかを選択した場合、B列ではA列で選んだどれかの値に基づいて指定した範囲の値しか記入できなくする方法を教えて頂きたいのですが、どなたかエクセルマスターはおりませんか? できれば、 A列            B列 1  Aで1の場合4,5,6どれかしか選択できない。 2  Aで2の場合7,8,9どれかしか選択できない。 3  Aで3の場合10,11,12どれかしか選択できない。 出来ればVBAを使わずにシンプルな方法を教えて頂きたいのですが、入力規則とかIF関数のみで実現可能でしょうか?

  • エクセルでシート10の表からシート1から9の表に数値を自動抽出したい

    エクセルでシート10の表からシート1から9の表に数値を自動抽出したいのですが、 シート10 TP店 TW店 NP店 TM店 9 8 4 2 シート1 売上 TP店 ?? シート2 売上 TW店 ?? TP店売上9 TW店売上8 NP店売上4 TM店売上2 です かなりデータが多く手作業ではなく関数で一発入力したいのです。つまりシート1から10までありシート1はTP店、シート2はTW店の個々の売上データが入っています。シート10に全体の売上データが入っていて、シート10を参照してシート一つずつにアナログで=Sheet1!A1をいれていく、又はコピーすると大変なのでシート1に入れる関数と他のシートの関数をすべて同じにしたいのです。で自動で店の売上を入力するような関数ありますか 以前質問した際に =IF($B$1="","",INDEX(Sheet21!$B$2:$E$5,MATCH($A2,$A$2:$A$4,0),MATCH(B$1,Sheet21!$B$1:$F$1,0))) と答えをいただきましたが、さっぱりわかりません。わかりやすく説明していただけるとありがたいです。

  • EXCEL Sheet名指定

    いつもお世話になります。 EXCELにてFILE1.xls ⇒ Sheetが1日~31日まであります。 FILE2.xls からリンクして集計するのですが 式:サンプル ='[FILE1.xls]1日'!G7 上の式の1日の部分がSheet指定ですが、 例えば、FILE2のA1に1日と指定したら FILE1のSheetの1日にリンクさせる。 例えば、FILE2のA1に2日と指定したら FILE1のSheetの2日にリンクさせる。 FILE2のA1セルに指定した日にちによりSheet名を自動変動 させるにはどのようにすればよいのでしょうか? INDIRECT関数にて可能ですが、FILE1と2を同時に 開かないとREFエラーになるため、INDIRECT以外での方法を 教えて頂けたらと思います。 関数・マクロでも構いませんのでお願いいたします。 どなたか、ご教授下さい。

  • エクセルVBA 他ブックのシートのsub呼び出し

    ブックBのシート(*)に関数 sub aaaを定義します。 (*)シートオブジェクト名を任意のものに変更します。(→eee) この時、ブックAのVBAからブックBを開き、その参照を得て(workbook型の wbという名前の変数に格納します。)、「Call wb.eee.aaa」と 呼び出すことができると思っていましたが、"オブジェクトは そのメソッド/プロパティを持っていません"という旨のエラーが 出て、呼び出すことができませんでした。 どのようにしたら呼び出すことができるようになりますか。 aaaはpublicで定義しています。

  • エクセルでマクロを作りたいのですが上手くいきません

    エクセルで会社で使うファイルを作成していますが、ファイルサイズが大きくなりすぎたので、こういうマクロが作れないかと調べていたのですが、やり方がわからないので困っています。 わからないのは、入力シートのA列にデータを入力して、シート2のB列に自動的に表示する ことを自動的にやってくれるマクロです。 今はIF関数をシート2に入力している状態ですが、セルに関数を入れる方法だとファイルサイズが大きくなりすぎてしまいます。 (IF関数をあらかじめ入力しておくセル数がとてもたくさんある為) なお、入力シートA列がブランクの場合は、シート2のB列には何も表示されないようにしたいです。 大変困っております。よろしくお願いします。 

  • Excelマクロ シート名一覧からシート削除

    Excelマクロで質問させてください。 任意のシートに記載されたシート名一覧を参照して、そこに記載されているシート名のシートを、ブック内から削除するマクロは作れますでしょうか? よろしくお願いします。

  • 選択したセルの値を別シートのセルに取り込む方法

    顧客情報を閲覧・印刷するためのフォームがsheet1とします。顧客の情報が入ったデータベースがsheet2とします。 以下のマクロでsheet2の48列目を空欄にして、48列のいずれかのセルに「出力」と入力すると、そのセルの行の値を出力結果というシートに渡すようにしています。取り込んだ行の顧客番号をsheet1のmach関数の参照先に指定して、index関数で各項目に取り込むようにしています。 Worksheets("sheet2").Activate Dim i, LastRow As Long LastRow = Cells(Rows.Count, 48).End(xlUp).Row For i = 1 To LastRow If Cells(i, 48) = "出力" Then Rows(i).Copy Sheets("出力結果").Cells(Rows.Count, 1).End(xlUp).Offset(1, 0) End If Next i もう少しこれを改良して、Sheet2の顧客番号の入っている1列目の任意のセルを選択して、sheet1のmatch関数の参照先(例としてK4)に選択した顧客番号を渡す方法はありませんでしょうか。sheet1は顧客番号だけ取得できれば、match・index関数でフォームが完成します。 VBAは初心者です。上記マクロは検索で調べて必要な個所をコピーして今の環境にアレンジしました。よろしくお願いします。

専門家に質問してみよう