excelのシート番号を取得したいと思っています。
シート名称ではなくシート番号です。
出来れば左から1番目、二番目・・・と言った情報を取りたいです。
複数のexcelシートのデータを、別のファイルへ複写して使用します。この時に、識別情報として、シート番号を添付したいと思っています。
運用上でシート名称は使用できません。
難しいようであれば、左から何番目と言う事ではなくても、excelのシステムで管理しているシート番号でもかまいません。
ファイル名=CELL("filename")のような感じで、簡単に取得したいです。
尚、マクロを使わないで、実現できないかと思っています。
申し訳けありませんが、ご存知の方いらっしゃれば、宜しくお願い致します。
No.4ベストアンサー
- 回答日時:
#1,2です。
#3の方のご指摘通り、シートの順番を入れ替えても、この関数の結果は、自動的に修正されません。
関数を入れたセルの値は、
その関数が、「直接参照するセル」の値が変化しない限り再計算されません。
引数がある関数の場合、自動的に再計算がおこなわれるので問題ないのですが、
この関数には引数がないため、自動再計算が行われないのです。
そこで、その点が気になる場合は、以下のように変更してください。
なんらかのイベントが発生するごとに、このユーザー定義関数については、強制的に再計算が行われるようになります。
Option Explicit
Function SHEETNAME() As Long
Application.Volatile
SHEETNAME = ActiveSheet.Index
End Function
No.3
- 回答日時:
=CEll()、=INFO()などは要求を満たすものは無いようです。
その他にも見つかりません。私も私製関数をテストしていて、回答を開くと既に#1・#2のご回答が入っていました。
>(#2より)Indexプロパティは順番を返すようです。
Function sheetindex()
sheetindex = ActiveSheet.Index
End Function
を作り、私の場合sheet4は左から2番目にありました。
sheet4のA1セルに=sheetindex()と入れると2と出ました。
sheet4のシートタブをマウスで掴んで、4番目に移動しました。
そこでsheet4のA2に=sheetindex()と入れると4と入りました。
A1セルの2はそのまま2です(関数としては私には不思議なタイプ)。
これで画面上の左からの表示順番を表すことが確認できて間違いないと思います。
No.2
- 回答日時:
#1です。
先ほどの回答で
>左から何番目、というのはたぶん無理かと。
は勘違いでした。
やってみたらできました。
(Indexプロパティは順番を返すようです。)
ちなみに、コードをかくとたったこれだけです。
このコードを書くと、
ワークシート関数と同じように
=SHEETNAME()
という式だけで、簡単にシート名を取得できます。
どうですか?マクロも捨てたもんじゃないでしょう?
Option Explicit
Function SHEETNAME() As Long
SHEETNAME =ActiveSheet.Index
End Function
早速の回答有り難う御座います。
ただいま色々と触っていましたら、具体的な回答頂きましたので早速動かしました。
goodです!
ユーザー定義関数は使ったことが無かったので、大変に良い勉強になりました。
これから、どんどん使ってみたいと思います。
No.1
- 回答日時:
こんばんわ。
>マクロを使わないで、実現できないか
>ファイル名=CELL("filename")のような感じで
残念ですが、これはVBAを使わないとできません。
ユーザー定義関数を使えば、関数のようなイメージで、
たとえば 「=SHEETNAME()」でシート名を取得するのは簡単にできます。
ただし、ユーザー定義関数を作成するためにはVBAを使うことになります。
ちなみにVBAでは、
シート名、
もしくは
インデックス番号(これは順番とは異なります)
を取得できます。
左から何番目、というのはたぶん無理かと。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) マクロか関数で処理したいのですが、教えて頂けませんか。 8 2022/10/31 15:18
- Excel(エクセル) 【VBA】PDF出力に任意のファイル名前を付ける方法 3 2023/07/21 10:55
- Excel(エクセル) Excelマクロ 差分抽出の方法が知りたいです。 2 2023/03/07 13:25
- Excel(エクセル) Excel関数 情報引用する方法 4 2022/07/31 20:59
- Excel(エクセル) ある数値に対して、値を返す数式についてです 2 2022/09/13 22:06
- Excel(エクセル) EXCEL 関数を教えてください。(A列の同じ値が複数ある場合vlookupで出来ますか) 4 2022/12/07 20:54
- Visual Basic(VBA) 貼り付けた値が消えていく 以下はソースファイルの2番目のシートのB6から最終行を取得 ターゲットファ 2 2023/07/27 12:23
- Excel(エクセル) 【困っています】VBA 追加処理の記述を教えてください。 1 2022/08/25 22:54
- Excel(エクセル) excelで検索した商品の画像(ネットワーク上の)を表示させたい。 3 2023/06/28 00:32
- Excel(エクセル) Excel、同じフォルダ内のExcelファイルの特定シートのみを1つのファイルに集約したい 8 2022/09/07 15:12
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
【VBA】PDF出力に任意のファイ...
-
Excelマクロ パスワードを入力...
-
excel串刺し計算で合計値が表示...
-
Access2010 Excelのエクスポー...
-
エクセルのシートごとに連番を...
-
exselの質問です
-
PowerPointの表内のカンマ
-
LINEのこの空白ってどんな意味...
-
EXCELでタイトル行と一番下の行...
-
エクセルで「-3E+06」と...
-
名簿の漢字名を関数で半角カナ...
-
エクセルの結合セル内に文章を...
-
エクセルでオートサムを使った...
-
エクセル 0:00 の時間をカウン...
-
エクセルで囲み線で出来ますか?
-
エクセル 印刷範囲外を非表示...
-
EXCELで縦の行全てに一括して文...
-
エクセルの計算式でコンマを付...
-
Excelの値を1減らす
-
関数を使った日時の自動入力
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
【VBA】PDF出力に任意のファイ...
-
エクセルのシートごとに連番を...
-
エクセルで設定していないのに...
-
エクセルでページごとにヘッダ...
-
excel串刺し計算で合計値が表示...
-
Excelマクロ パスワードを入力...
-
複数のEXCELシートの印刷順の指定
-
既存ワークシートにピボットテ...
-
エクセルで、ハイパーリンクの...
-
社内SEです。機種、ライセンス...
-
エクセルで個人成績グラフをつ...
-
【VBA】#N/Aを無視して串刺し...
-
Access2010 Excelのエクスポー...
-
エクセルのイベントVBAを複数の...
-
この記号、手短(テミジカ)に日本語...
-
[EXCEL] あるフィールドをキー...
-
エクセル VBAでシートのコピー...
-
Excel 一覧表から特定の数値を...
-
マクロ記録機能を使ってグラフ...
-
excelのシート番号を取得したい...
おすすめ情報