• ベストアンサー

エクセル2007で1つのBOXに列がA~N 行が200の同じ表形式のシ

エクセル2007で1つのBOXに列がA~N 行が200の同じ表形式のシートを150枚作り シートの右上N1のセルに1~150の数字を入れていますがこの数字を自動化することは、可能でしょうか?(例えば5と付けたシートの次に6と付けたシートを挿入すると以降のシートが自動で7~に変わる)初心者ですよろしくお願い致します。

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

  • ベストアンサー
  • MackyNo1
  • ベストアンサー率53% (1521/2850)
回答No.5

>この1~150の連番を逆さにすることは、出来ないでしょうか? 逆方向に連番を付けるならコードを以下のように修正して下さい。 Sheets(i).Range("N1").Value = Sheets.Count - i +1

hiro16166
質問者

お礼

ありがとうございます 試してみます。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (5)

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.6

いまあるシートの各々のシートのN1セルにダブりのない、番号を入れるなら Sub test01() i = 1 For Each sh In Worksheets sh.Range("N1") = i i = i + 1 Next End Sub と簡単だが、シートタブの見えている順序に振られる。これで良いのですか。 シート名のことではないでしょうね> ーーー >例えば5と付けたシートの次に6と付けたシートを挿入すると以降のシートが自動で7~に変わる と言うのはどんなこと? >5と付けた、とは何につけるの?シートのなまえ? シート名?セルに数字を入れるのは「付けた」とは言わないでしょう。 それに「あるエクセルの行為(操作)をしたら何々する」と言うのは難しいこと。VBの実行する方法も勉強してない人には無理。 ーー >エクセル2007で1つのBOXに エクセルのブックの誤りでしょう。エクセルの基礎的なこと。 ーーー シートを挿入(=増や)したとき、シート名が例えば「在庫23」なら、増やしたシート名を「在庫24」と自動でつけてほしいということではないの? もしそれなら質問の書き方はおかしい。

hiro16166
質問者

お礼

回答ありがとうございます。初心者ですいません 約150枚(増える)シートのN1セルに1~150の連番を入れているんですけど今の状態だと 新しくコピーしたシートのN1セルに 5 と入れてこのシートを 4 と入れてあるシートの次に挿入した場合挿入したシート以降のシートのN1セルの数字をすべて 6~151に入れ替える作業が必要になるので これが自動で変わらないかと思い質問させて頂きました 質問の書き方も悪く 回答頂いた方に 迷惑と 不満感を もたせたことを お詫びいたします。 すいませんでした。

全文を見る
すると、全ての回答が全文表示されます。
  • MackyNo1
  • ベストアンサー率53% (1521/2850)
回答No.4

>マクロ実行しましたが、(コンパイルエラー プロシージャの外では無効です。) 表示が出て実行出来ません 何がいけないんでしょうか? 原因は特定できませんが、記載したマクロコードに提示したコード以外のコードなどが記載されていないでしょうか? VBEを起動して、いったん、コピー貼り付けしたマクロコード全体を削除してから、もう一度提示したコードを貼り付け直して、sampleマクロを実行し直してみてください。

hiro16166
質問者

お礼

回答頂いたとおり一回削除してから、もう一度マクロ実行したら 出来ました ありがとうございました この1~150の連番を逆さにすることは、出来ないでしょうか?シート名をあいうえお順で並べており 出来れば あ 側を 1 にしたいんですが すいません。 

全文を見る
すると、全ての回答が全文表示されます。
  • kagakusuki
  • ベストアンサー率51% (2610/5101)
回答No.3

 150枚も同形式のシートを作られるという事は、おそらく基となるシートをコピーして、新しいシートを作られているのではないでしょうか?  そして、コピーによって作成されたシートには、個別のシート名を新たに付けたりはせずに、Excelによって自動的に付けられた Sheet1 (2) の様な、( )内にコピー回数を示す数字が記されている形式のシート名のままで、Bookを作成されているのではないでしょうか?  もし、そうであるならば、連番ではありませんが、( )内のコピー回数を示す数字のみを取り出す方法は如何でしょうか?  その場合には、N1セルに次の数式を入力するだけで済みます。 =VALUE(SUBSTITUTE(MID(CELL("filename",N1),FIND("(",CELL("filename",N1),FIND("]",CELL("filename",N1)))+1,9),")",))  尚、上記の数式は、 シート名の( )内に数字以外の文字が存在している場合や、 ( )の後にも何か文字が存在している場合、 コピー回数を示す数字の直前以外の位置にも「(」が存在している場合 等にはエラーとなりますから、注意して下さい。 (全角文字の「(」が存在する場合や、シート名ではなく、ファイル名内に「(」が存在している場合は、エラーとはなりません)  それから、シートのコピーでは、 Sheet1 (1) の様な、( )内の数字が1のシートは、自動的には作成されませんから、N1に1と表示させるためには、適当なシートのシート名を変更する事で、 Sheet1 (1) の様な、( )内の数字が1のシートを作成する必要があります。

hiro16166
質問者

お礼

回答ありがとうございます。はい基となるシートをコピーして150枚作っていますがシート名も変えているので、回答頂いた数式を入れてもだめじゃ無いでしょうか?

全文を見る
すると、全ての回答が全文表示されます。
  • MackyNo1
  • ベストアンサー率53% (1521/2850)
回答No.2

>恥ずかしいですがマクロの仕方が解りません  Alt+F11キーでVBEを起動し、「挿入」「標準モジュール」で表示される白い画面部分に、提示したコード(SubからEnd Subまで)をコピー貼り付けして、「表示」「マクロ」で「sample」を選択して「実行」してください。

hiro16166
質問者

お礼

回答ありがとうございます。マクロ実行しましたが、(コンパイルエラー プロシージャの外では無効です。) 表示が出て実行出来ません 何がいけないんでしょうか?

全文を見る
すると、全ての回答が全文表示されます。
  • MackyNo1
  • ベストアンサー率53% (1521/2850)
回答No.1

150枚のシートのN1セルに1からの連番を入力するなら以下のようなマクロを実行してみてください。 Sub sample() Dim i As Integer For i = 1 To Sheets.Count Sheets(i).Range("N1").Value = i Next i End Sub

hiro16166
質問者

お礼

回答ありがとうございます。恥ずかしいですがマクロの仕方が解りません よろしくお願い致します。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • Excelの表で、行と列の見出しを、そっくりそのまま入れ替えたい。

    Microsoft Excel2000(OS=Win・XP)で表(表の内容は賃金センサスです。)を作成しているのですが、行と列の見出しをそのまま入れ替えて、セルもちゃんと内容に合うように、自動的に入れ替わるような方法って無いでしょうか???もし方法があれば誰か教えて下さい~! (↓表の状態です) ・ワークシートは、入力用・印刷用1・印刷用2の、合計3つがあります。 ・入力用と印刷用1のワークシートは、”行が年齢、列が年度”となっています。 ・印刷用2のワークシートは、”行が年度、列が年齢”となっています。 ・印刷用1のワークシートのセルには、計算式を入れてあり、入力用のワー クシートのセルに入力すると、ある計算をして、自動的に数字が表示され るようにしています。 ・印刷用2のワークシートのセルには、計算式はまだ入れていません。 →印刷用1も2も、列と行が交差するセルの内容は同じだし、どうにか簡単に印刷用2を作成できないかとおもっているのです。

  • エクセル 表の行と列

    すみませんが、ご教授願います。 Excelで作成した表の行と列の説明で次のうち間違いはどれか 1.行と列を入れ替えて新たな表を作成するときは 行と列を入れ替える機能を使うと便利である 2.行や列のセルを対象にしての関数計算の際、行や列を 非表示にするとエラーメッセージが出て計算が出来ない 3.ある行や列を非表示にして印刷する際 非表示にした部分は印刷されない 4.現在のシートの行と列の表示を 右から左へ表示することが出来る

  • Excelでテキストボックス内に表を挿入することは可能?

    Excel内で2行、3列程の表を作ってそれを、テキストボックス内に入れたいのですが、どうすればいいのでしょうか?テキストボックス内に表を挿入させるのは可能でしょうか?

  • Excelの行挿入で

    Excelのシートにデータがつまっているのですが(これから新しく表を作るということではないということです。)、行の挿入をしたいのです。 このとき、行を選択して、右クリックで「挿入」を選べば挿入自体はできます。 しかし、 既にある表は、行が、A列とB列が結合されているのですが、 単に上記のように挿入すると、 A列B列が分かれている行が挿入されてしまいます。 新しく挿入された行のA列とB列を選択して、「セルの書式設定」の「配置」でセルを結合させてもいいのですが、 いちいちそうしなくても 挿入時点ですでに結合されているようにするにはどうすればよいですか。 (Excel2000)

  • 行・列の挿入でセル結合が解除される

    エクセルについての質問です。 結合セルを含む表で行や列の挿入をすると、結合していない列や行が挿入されます。 表が足りなくなった場合、行・列のコピー&貼り付けで付け足しているのですが、 表の真ん中あたりで挿入が必要な場合や、頻繁に挿入が必要になったときにとても手間がかかっているように感じてしまいます。 シート上では難しい気はしていますが、表と同じ結合をした行や列を挿入する方法はあるのでしょうか? マクロは初級程度のものしか書けませんが、どうせやるなら効率的にやりたいと思っています。 非常に初歩的な質問ですがよろしくお願いいたします。 エクセルは2003です。

  • 同じ位置(n行m列)にある数字に網掛けをする方法

    どなたかご存じでしたら回答をよろしくお願いします。 【質問】 下記のように5行6列のセルを1つの塊と見て、2つ上下にあるとします。 この上下のセルの1行1列から5行6列まで入っている数字を見比べて、 「n行m列にある数字が同じ数字の場合、その数字を網掛け(又は塗り潰し)する方法」 が知りたいです。 10 11 16 19 28 39 02 04 09 15 24 36 07 08 20 35 37 38 01 05 14 23 33 34 13 21 31 32 42 43 09 16 17 21 25 39 02 15 19 20 36 43 04 11 14 34 38 41 01 08 13 31 37 40 07 12 29 32 33 35 【実行例】・・・02,01,39が同じn行m列にあったため、上下どちらも塗り潰す。 10 11 16 19 28 ■ ■ 04 09 15 24 36 07 08 20 35 37 38 ■ 05 14 23 33 34 13 21 31 32 42 43 09 16 17 21 25 ■ ■ 15 19 20 36 43 04 11 14 34 38 41 ■ 08 13 31 37 40 07 12 29 32 33 35 ◎注意事項   ・5行6列のセルに入る数字は、1~43迄の数字で、重複はありません。   ・使用するエクセルは2010です。   ・数字が一致した場合は、網掛けでも塗り潰しどちらでも構いません。 以上、よろしくお願いします。

  • エクセルでアクティブなセルの行と列を反転表示したい

    セルのかたちが正方形に近い、約100行(日付)と100列(項目)の表があります。 ひとつのセルの中には2桁(0~99)までの数字を入力し、縦横それぞれの最後尾でSUM関数により 合計値を出しています。 すべてのセルに数字を入力するわけではないので、よく間違ってとなりの項目に 数字を入力してしまうことがあります。 入力ミスを防ぐ為に、入力する際にアクティブなセルの行と列同時に反転表示する方法はありますでしょうか。(十文字のイメージ) 動作はブック全体ではなく任意のシート(Sheet1)のみで行いたいです。 エクセル2003です。 よろしくお願いします。

  • エクセルで列削除

    エクセルで列の自動削除をしたいと考えています。 たとえば、100列の表があるとします。その表を、 ある特定のセルに入力した数字(0<N<100)の数だけの表(列)をつくりたいと考えています。 (N+1)列目から100列目までを削除すればいいのですが、 何かいいマクロはありますでしょうか? OFFSET関数を使おうと思っていたのですが、 引数にどう記述していいものか・・・ OFFSETを使わなくても結構です。なにかいい記述があったら教えてください。 お願いします。

  • エクセルマクロで表の途中の集計行と合計行追加

    こんなことできますか? エクセルの表が各シートに一つずつあります。 B列からR列まで使用しています。 始まりは3行目で見出し行です。 データは4行目以降ですが、これは各シートごとに最終行は異なります。だいたい120行から200行程度です。 途中に空白はありません。 この表はS列の数値(12種類)により分類され並べ替えてあります。 やりたいのは、S列の数値を見て、分類(同じ数字)ごとに集計する行を追加したいのです。 集計する列は、D~K列だけです。 そして、最終行に全部の合計も出したいのです。 ただ、量が多いのと、頻繁に行なう作業なのでマクロでささっと出来ないかと思います。 どなたかどうすればよいか教えてください。 なにとぞお願いします。

  • エクセルで形式を指定して挿入したいのですが・・・

    エクセル作業でマクロを作ろうと思ったのですがうまくいかないので皆様のお知恵を貸していただけませんでしょうか。 まずSheet1にn行×m列の数字データがあります。 またsheet2にはn’行×m’列の数字データがあります。 このデータは月に一回上がってきて、mおよびm’は毎月同じ ですがnおよびn’は毎月違う数になります。 それを整理しなくてはなりません。 このふたつのシートから共通項目の列A、B、C、D・・・を抜き出して sheet3にN行×M列の数字データを作りたいのです。 ここからが質問なのですが、行数が毎回違うのでマクロを組む時に行数最大値でコピーしようと思うのですが、その場合、sheet1を張った後にsheet2を張ろうとすると、 行最大値をオーバーする為エラーが出ます。 そこで空白を無視して挿入をしたいのですがそのやり方が分かりません。 なにかと分かりにくい文章かと思いますがよろしくお願いいたします。

専門家に質問してみよう