EXCELのワークシートの名前の変更(例えば「19877」)を入力すると、
同じシート内のあるセル(例えば「B4」)に同じ名前(「19877」)がコピーされる。
入力作業が2回かかるのを1回ですませたい。
あるいは、逆の場合、
シート内のあるセルB4に19877を入力すると、シートの名前が19877になる。

よい方法があれば教えてください。

このQ&Aに関連する最新のQ&A

Excel 名前」に関するQ&A: excel 名前の抽出

A 回答 (4件)

B1セルに次の式を入力することでシート名を表示することができます。



=TRIM(MID(CELL("filename",A1),FIND("]",CELL("filename",A1))+1,10))

ただし、一旦ブックを保存した後でなければ表示されません。

なお、B1セルにシート名を入力した後でシート名をそのシート名に変更することはマクロを使わない限りできません。
    • good
    • 0
この回答へのお礼

さっそくのご回答ありがとうございます。こんなに複雑な関数になるとは思いませんでした。実施してみても使えました。素早い回答で敬服します。ありがとうございました。

お礼日時:2011/04/09 19:56

No.2です!


逆の場合の回答をしていませんでした。

Sheet名をB4セルに表示させるコードです。

Sub test2()
ActiveSheet.Range("B4") = ActiveSheet.Name
End Sub

こんな感じではどうでしょうか?
何度もごめんなさいね。m(__)m
    • good
    • 0
この回答へのお礼

さっそくのご回答ありがとうございます。マクロ実行してみますと、エラー表示が出てしまいました。ANO4で逆の場合の回答もいただきました。このANO4のマクロを入力して実行すると、シート名の入力でセルにコピーができました。これはこれで使えます。

お礼日時:2011/04/09 19:57

一例です。


>同じシート内のあるセル(例えば「B4」)に同じ名前(「19877」)がコピーされる。
 B4に=MID(CELL("filename",$A$1),FIND("]",CELL("filename",$A$1))+1,31)

>シート内のあるセルB4に19877を入力すると、シートの名前が19877
 ⇒これはVBAでないとできない
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。早速実行してみましたら、うまくいきました。ANo1のKURUMITOさんの関数も使えましたので、両方をつかわさせてもらいます。ベストアンサーにしたいのですが、早い方にさせていただきました。ありがとうございました。

お礼日時:2011/04/09 20:06

こんにちは!



VBAになってしまいますが・・・

画面左下にある操作したいSheet見出し上で右クリック → コードの表示 → VBE画面がでますので
↓のコードをコピー&ペーストしてマクロを実行してみてください。
(Alt+F8キー → マクロ → マクロ実行です)
尚、B4セルの値をSheet名にするようにしています。

Sub test()
ActiveSheet.Name = Range("B4") '←セル番地の「B4」は適宜変更してください。
End Sub

上記の3行だけでOKです。

他に良い方法があればごめんなさいね。m(__)m
    • good
    • 0
この回答へのお礼

さっそくのご回答ありがとうございます。マクロ実行してみますと、エラー表示が出てしまいました。ANO4で逆の場合の回答もいただきました。このANO4のマクロを入力して実行すると、シート名の入力でセルにコピーができました。これはこれで使えます。

お礼日時:2011/04/09 19:40

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

QEXCEL VBA ワークシートのコピーについて

seaclearsky8です。

一つのブックに何枚ものワークシートを追加して保存するVBAについて
ご教授、よろしくお願いします。

コピー元 

MASTER Book MASTER Workseets

コピー先

Copy Book copy Worksheets


コピー元にはワークシートがMASTERワークシートの一枚しかありません。

その一枚のワークシートに値をVBAで入れていき処理し

コピー先のコピーBOOKにワークシートをコピーしていきたいです。

しかし、MASTERBOOKの処理が何通りかあり、

コピー元の一枚のワークシートに
処理別にデータを写し

コピー先BOOKに

         ワークシート名
ワークシート1 処理1ワークシート 
ワークシート2 処理2ワークシート
ワークシート3 処理3コピー元ワークシート3

という具合にワークシートを複数コピーしたいのですが

処理ごとにデータを代入し、コピー処理はできるのですが。

コピー先BOOK

ワークシート3 処理3ワークシート

だけしかコピーされてないBOOKが作成されます。
上書きされているのだと思われます。

対処法が調べましたが見つけられていません。

すいませんが対処法及び参考VBA等ご教授宜しくお願いいたします。

seaclearsky8です。

一つのブックに何枚ものワークシートを追加して保存するVBAについて
ご教授、よろしくお願いします。

コピー元 

MASTER Book MASTER Workseets

コピー先

Copy Book copy Worksheets


コピー元にはワークシートがMASTERワークシートの一枚しかありません。

その一枚のワークシートに値をVBAで入れていき処理し

コピー先のコピーBOOKにワークシートをコピーしていきたいです。

しかし、MASTERBOOKの処理が何通りかあり、

コピー元の一枚のワークシートに
処理別にデータを写し

コピ...続きを読む

Aベストアンサー

今どういうコードを書いているのか不明なので、とりあえず
「1つのシートを別のブックに複数回コピーする」ための参考ソースを書きます。
コピー元のブックに下記ソースを貼り付けて実行してもらえば
新規ブックにコピー元のシートが3枚コピーされると思います。
(新規ブックを追加しているのでシート数は3枚より多くなります)

Sub copySheet()
Dim masterWb As Workbook
Dim masterSh As Worksheet
Dim copyWb As Workbook

Set masterWb = ThisWorkbook
Set masterSh = masterWb.Sheets(1)
Set copyWb = Workbooks.Add

'ここからが実際のコピー処理です。
'単純に3回コピーメソッドを呼び出して3回コピーしています。
masterSh.Copy before:=copyWb.Sheets(1)
masterSh.Copy before:=copyWb.Sheets(1)
masterSh.Copy before:=copyWb.Sheets(1)

End Sub

今どういうコードを書いているのか不明なので、とりあえず
「1つのシートを別のブックに複数回コピーする」ための参考ソースを書きます。
コピー元のブックに下記ソースを貼り付けて実行してもらえば
新規ブックにコピー元のシートが3枚コピーされると思います。
(新規ブックを追加しているのでシート数は3枚より多くなります)

Sub copySheet()
Dim masterWb As Workbook
Dim masterSh As Worksheet
Dim copyWb As Workbook

Set masterWb = ThisWorkbook
Set masterSh = masterWb.Sheets(1)
Set copyWb = W...続きを読む

Q(Excel)あるセルに文字を入力しただけで、同じブック内のほかのワークシートにも、同じ文字が自動的に入るようにするには?

こんにちは。
質問内容はタイトルのとおりです。

あるワークシートのあるセルに文字を入力すると、ほかのワークシートのセルにも同じ文字が自動的に書き込まれる方法を知りたいです(ブックは同じ)。複数のワークシートを制御するには、やはりマクロを使うのでしょうか?

よろしくお願いします。

Aベストアンサー

clam_chowderさん、こんにちは。

Sheet1のA1にたとえば「100」と入力しますね。
Sheet2のA1に、これと同じ数値を表示するには、
 =Sheet1!A1
でOKです。

数式をいれるのが苦手なら、
Sheet2のA1セルで「=」を入力すると、数式入力状態に入りますから、
ここでSheet1のシートタブをクリックし、
リンクしたいA1セルをクリックしてEnterすると、
自動的にさきほどと同じ式が入ります。

Qエクセル 他のファイル(ブック)へシートをコピー

エクセル(2003)で他のファイル(ブック)にシートをコピーする場合,コピー元のシートに他のシートの値を参照するセルがあると,コピー後のシートに参照エラーが起きてしまいます.
これを回避するため,コピー元のシートを全選択してコピーし,コピー先で「形式を選択して貼り付け→数値と数値の書式」をした後,再度コピー元のシート全選択コピーし,コピー先で「形式を選択して貼り付け→書式」とする,という方法で今は作業していますが,一発でできる方法はないでしょうか.
もちろん,コピー先にコピー元の数式を反映させる必要はなく,値がコピーできればOKです,

Aベストアンサー

ワークシートを他のブックにコピーする方法ですが
>コピー先にコピー元の数式を反映させる必要はなく,値がコピーできればOKです,
「反映させる必要が無く」という部分を「反映させてもかまわない」と
解釈すれば
コピー元ブックとコピー先ブックの両方を同時に開いておきます。(コピー先ブックを新規作成する場合は、コピー先ブックは開いておく必要はありません)
コピー元ブックのコピーするワークシートをアクティブにしてメニューバー[編集]~[シートの移動またはコピー]
「シートの移動またはコピー」ダイアログボックスで
「移動先ブック名」の項目で移送先ブックを選びます、新しく作成する場合は「(新しいブック)」を選びます。
「挿入先」の項目で、コピーするシートを挿入する位置を選びます。
「コピーを作成する」項目にチェックを入れます。
[OK]ボタンをクリック
これでワークシートごとコピーすることができます。

ただし、コピー元ブックのほかのワークシートを参照している箇所は、そのまま外部ブックへの参照となっていますので、コピー元ブックを変更した場合、コピーブック先ブックにも反映されてしまいます。

これが不都合なら
コピー先ブックで
メニューバー[ツール]~[オプション]で
「オプション」ダイアログボックスの「計算方法」タブの中の
項目「外部リンクの値を保存する」にチェックが入っていることを確認したうえで
メニューバー[編集]~[リンクの設定]で
「リンクの編集」ダイアログボックスの[起動時の確認]ボタンをクリック
「起動時の確認」ダイアログボックスの[メッセージを表示しないで、リンクの自動更新も行わない]を選択し[OK]ボタンをクリックします。

こうしておけばリンクの手動更新をしない限り、コピー元ブックを変更しても反映されませんし、コピー元ブックをフォルダの移動やあるいは削除してしまっても、参照エラーになることはありません

ワークシートを他のブックにコピーする方法ですが
>コピー先にコピー元の数式を反映させる必要はなく,値がコピーできればOKです,
「反映させる必要が無く」という部分を「反映させてもかまわない」と
解釈すれば
コピー元ブックとコピー先ブックの両方を同時に開いておきます。(コピー先ブックを新規作成する場合は、コピー先ブックは開いておく必要はありません)
コピー元ブックのコピーするワークシートをアクティブにしてメニューバー[編集]~[シートの移動またはコピー]
「シートの移動またはコピ...続きを読む

Q【Excel VBA】セルに入力されている値と同じ名前のシートにデータをコピーする

Excel2003を使用しています。

Sheet1のC2セル以下に入力されている値と同じ名前のシートに、その行のデータをコピーする作業をマクロで処理したいのですが、セルに入力されている値と同じ名前のシートを取得する方法がわかりません。
どのようにコードを書いたらいいのでしょうか?

ちなみに、Sheet1のC2セル以下に入力されている値(=シート名)は、文字列(4桁の数字)です。

よろしくお願いします。

Aベストアンサー

この間の続きですか
>Sheet1のC2セル以下
ということはC2、C3、C4… と続くのでしょうか?

ptr = 2
Sheets(Sheets("Sheet1").Cells(ptr, "C").Value).Range("A1")

でSheet1のC2セルの値のシートのA1セルを示すことができます。ptrをカウントアップすればC3,C4…も処理できます。

貼り付けの方は情報がないので書けません。悪しからずです

QEXCEL VBA ワークシートのコピーについて

seaclearsky8です。

一つのブックに何枚ものワークシートを追加して保存するVBAについて
ご教授、よろしくお願いします。

コピー元 

MASTER Book MASTER Workseets

コピー先

Copy Book copy Worksheets


コピー元にはワークシートがMASTERワークシートの一枚しかありません。

その一枚のワークシートに値をVBAで入れていき処理し

コピー先のコピーBOOKにワークシートをコピーしていきたいです。

しかし、MASTERBOOKの処理が何通りかあり、

コピー元の一枚のワークシートに
処理別にデータを写し

コピー先BOOKに

         ワークシート名
ワークシート1 処理1ワークシート 
ワークシート2 処理2ワークシート
ワークシート3 処理3ワークシート

という具合にワークシートを複数コピーしたいのですが

処理ごとにデータを代入し、コピー処理はできるのですが。

コピー先BOOK

ワークシート3 処理3ワークシート

だけしかコピーされてないBOOKが作成されます。
上書きされているのだと思われます。

対処法が調べましたが見つけられていません。

すいませんが対処法及び参考VBA等ご教授宜しくお願いいたします。

seaclearsky8です。

一つのブックに何枚ものワークシートを追加して保存するVBAについて
ご教授、よろしくお願いします。

コピー元 

MASTER Book MASTER Workseets

コピー先

Copy Book copy Worksheets


コピー元にはワークシートがMASTERワークシートの一枚しかありません。

その一枚のワークシートに値をVBAで入れていき処理し

コピー先のコピーBOOKにワークシートをコピーしていきたいです。

しかし、MASTERBOOKの処理が何通りかあり、

コピー元の一枚のワークシートに
処理別にデータを写し

コピ...続きを読む

Aベストアンサー

> 配列にワークシートのオブジェクトを入れることとか可能なのでしょうか?

それは多分できないと思います。


> 複数のセル・シートを何回もコピーする場合にでるらしいです。

多分、メモリをたくさん使っちゃってるせいでしょうね。
まず、メモリ使用を減らすようにしましょうか。

・testwriteの最後にオブジェクト変数のメモリ解放を行う。
 具体的には以下のように書く。もうやってたらすみません。
Set cbook = Nothing
Set mastersheet = Nothing
・testwriteの中でのブックオープンおよび保存をやめる。
 新規ブックのオープンをtestwriteを呼ぶ前に1度だけ行い、
 testwriteの中ではその新規ブックに対してシートを追加していく。
 そしてtestwriteの処理が全部終わったら、
 新規ブックの全シートを1度に「記録シートYYYY/MM/DD.xls」にコピーする。

それでも駄目でしたら、以下の回答No.1を試してみてください。
http://oshiete.goo.ne.jp/qa/1822561.html

> 配列にワークシートのオブジェクトを入れることとか可能なのでしょうか?

それは多分できないと思います。


> 複数のセル・シートを何回もコピーする場合にでるらしいです。

多分、メモリをたくさん使っちゃってるせいでしょうね。
まず、メモリ使用を減らすようにしましょうか。

・testwriteの最後にオブジェクト変数のメモリ解放を行う。
 具体的には以下のように書く。もうやってたらすみません。
Set cbook = Nothing
Set mastersheet = Nothing
・testwriteの中でのブックオープンおよび保存をやめ...続きを読む

QExcelでブック内全シートの同じ位置セルに共通の名前定義1つでVBA設定したい。

Excel2003でBook中のシート(例:Sheet1!$A$1をACELLという名前)で登録します。
セルの名前定義ダイヤログで参照先アドレスを手で編集(例: =!$A$1)します。

■そうすると、同じブック中の各シートのセル関数で =ACELL&"です"と参照すると
セルがあるシートの$A$1セル内容が使用されます。

これに気をよくして使っていましたが、VBAのnameオブジェクトにあるReferToプロパティーや
Valueプロパティーに値を入れるとエラーシグナルが発生して受け付けてくれません。
【例】
dim NM as Name
set NM=Application.Names("ACELL")
......で
NM.ReferTo = "=$A$1" '-> "=シート名!$A$1"になる
NM.ReferTo = "=!$A$1" '-> 実行時エラー1004 入力した数式は正しくありません。・・・
NM.Value = "=!$A$1" '-> 実行時エラー1004 入力した数式は正しくありません。・・・

でもダイアログでは編集可能なんですよね・・・・ダイアログからはどのメソッドで
Nameオブジェクトの値設定しているのでしょうか?

Excel2003でBook中のシート(例:Sheet1!$A$1をACELLという名前)で登録します。
セルの名前定義ダイヤログで参照先アドレスを手で編集(例: =!$A$1)します。

■そうすると、同じブック中の各シートのセル関数で =ACELL&"です"と参照すると
セルがあるシートの$A$1セル内容が使用されます。

これに気をよくして使っていましたが、VBAのnameオブジェクトにあるReferToプロパティーや
Valueプロパティーに値を入れるとエラーシグナルが発生して受け付けてくれません。
【例】
dim NM as Name
set NM=Applic...続きを読む

Aベストアンサー

ActiveWorkbook.Names("ACELL").RefersToR1C1 = "=!R1C1"

Qワークシートを別ファイルにコピー出来ない

エクセル2010です。
コピー元ファイルを開き、ファイルメニュー→新規→空白のブック
により新ファイルを開き、コピー先ファイルとして名前を付けて保存、
コピー元ワークシートを選択しシートコピーしようとすると、以下のエラー表示があります。

文面忘れましたが、
コピー元とコピー先でワークシートの行列数が異なるため、コピー出来ない。ワークシートでなくデータを選択し、コピー&ペーストせよ。

ちなみに、作成したコピー先ファイルを一旦閉じて再度開くと、何故か普通にワークシートコピー出来ます。

メッセージに従うとセル幅や印刷範囲の設定がコピーされないので、やりたくありません。
普通にシートコピーしたいのです。一旦閉じて再度開くなどという動作は回避出来ないのでしょうか?

Aベストアンサー

先にコピー先のファイルを作成するのではなく、
コピーしたいシート見出しを右クリック
「移動またはコピー」をクリック
移動先Book名「新しいBook」
「コピーを作成する」にチェック

ではどうでしょうか?

これでもうまくいかなければ、、同様に作業するほかないのかもしれません。

QExcelで、同じセルをワークシートのまたがって合計したいです。

表題のとおりで、Excel上で、全てのワークシートの、たとえばC3のセルを合計した値を取得したいです。

どのようにすれば出来るでしょうか?
ご存知の方がいらっしゃいましたらよろしくお願いします。

Aベストアンサー

=Sheet2!C3+Sheet3!C3+Sheet4!C3 以下繰り返し

ではどうでしょうか??

QEXCELシートのコピー

あるExcelブックに統計表シート、グラフシート、グラフ用の数値シートがあります。

グラフシートだけ別の場所にコピーすると、コピーしたグラフシートのブックを開いたとき、このグラフシートはコピー元の数値シートにリンクしたままになりますが、このリンクを無効にしてシートコピーする方法はありますか。

Aベストアンサー

こんにちは。

グラフを、セルの値にリンクしないカタチにしたい
という主旨であると判断しました。

グラフをまず選択してください。

そしてShiftを押しながら、メニューの[編集]を選択すると、
「図のコピー」というメニューが現れます。

これをクリックすると、ダイアログが現れますが、
そのままOKします。

そして、シートの何もない部分をクリックします。

そして、メニューから
 編集-貼り付け
で、セルの値にリンクしないグラフ
(正確に言うとこれはグラフの「画像」です)
が貼り付けられます。

QEXCEL2002で、ブック内のワークシートを他のブックに(VBA含む丸ごと)コピーして移す方法

 EXCEL2002で、ブック内のワークシートを他のブックに(VBA含む丸ごと)コピーして移す方法
 普通のやり方では、セルの数字、値だけで、通常は、中身の重要な"関数式"であったり、VBA等のプログラムまで、コピーされることは、ありませんので、そこまで、出来る方法を教えて下さい。

Aベストアンサー

コピー元のBookとコピー先Bookをどちらも開いて
Excel画面上に並べます(左右に並べる方が作業しやすいと思います)

Ctrlキーを押しながら、コピーしたいシートのタブ部分を
クリック長押しすると、+マークと▲マークが出てきます。
マークが出てきたら、新しいBookにドラッグ&ドロップ で
シートコピーが出来ます。

全く同じシートがコピーされ、マクロもコピーされます。


人気Q&Aランキング

おすすめ情報