excel97で、「挿入」→「ワークシート」を選択すると、アクティブになっているsheetの前(シート見出し左側)に新しいシートが挿入されますが、大抵新しいsheetを挿入したいのは、一番後ろ(画面向かって一番右側)なので、そのあと移動させたりしなければならず面倒です。マクロ以外で一発で「一番後ろ(右側)に新しいワークシートを出す」ことは出来ないでしょうか?
宜しくお願い致します。

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

A 回答 (1件)

『挿入→ワークシート』をマクロの記録を行ってみると、


  Worksheets.Add
となります。

WorksheetsコレクションのAddメソッドは
 Worksheets.Add(Before, After, Count, Type)
のようにして使います。
Before, After, Count, Typeはいずれも省略可で、『引数 Before と引数 After をともに省略すると、アクティブシートの直前に新しいワークシートが追加されます。』とHelpにあります。
ということは、マクロを使わないで、『挿入→ワークシート』を行っても最後に挿入できないことになります。


『一発で』が思いつかないので次善策?ですが
(案1)一番操作を簡単にするには、最後のシートをアクティブにして『挿入→ワークシート』を行うことでしょうか。
(案2)最後のシートはいつも初期状態で残しておいて、このシートをアクティブにして、
シートタブを右クリックして、移動またはコピー→(末尾に移動する)
(案3)最後のシートを末尾にコピーして内容を消してしまう。
(案4)最後のシートをいつも初期状態にしておくことができなければ、新規ブックを用意しておいて新規ブックのシートをコピーする。
いずれも一発(一発の程度が分かりませんが)とはいえないですね。多分、マクロ以外では無理でしょう。

『一発で』がかなりきつい制約のようです。マクロならホントに『一発』(1行)ですが。
ご参考に。
    • good
    • 0
この回答へのお礼

ありがとうございます。あきらめがつきました(^^;
それでは苦手なマクロを頑張ってみます。
でも、数時間頑張ってみましたが、いい記述が出来ません。
また改めて質問させて頂きます。

お礼日時:2001/12/26 14:19

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

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

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

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

QExcelのワークシート毎の保存や他のファイルのワークシートの挿入

ヘルプを見ましたが、よくわからないので質問させていただきます。

Excel97/2000で、複数のワークシートを作成している
1つのファイルを、ワークシートごと別ファイルに保存
をしたいのですが、Excel自体でこういうことを処理する
機能とかがあるんでしょうか。無ければ何か方法はあり
ますでしょうか。

それとはまた別に、複数のファイルのワークシートを1つ
のファイルにまとめるときにはどのようにすればよろし
いのでしょうか。
(つまり、複数ファイル・1つのシート→1つのファイル・複数のシートにするという事。)

初歩的な質問ですいませんがどうぞよろしくお願いします。

Aベストアンサー

まず、

対象となるエクセルファイル(ブック)を複数開きます。

移動させたいシートのタブを右クリックし、『移動またはコピー』を選択

『移動先ブック名』より移動させたいファイル(ブック)を選択

『挿入先』を選択する(コピーを作成する場合はチェックボックスにチェックする)

以上でいかがでしょうか。

QExcel でシート間の重複データ(Sheet1のA=Sheet2のA かつ Sheet1のB=Sheet2のB)

Excel2000です。

Sheet1のA列・B列・C列・・・にデータが入っています。
Sheet2のA列・B列・C列・・・にデータが入っています。

Sheet1のA列とSheet2のA列は、似たようなデータが入っています。
Sheet1のB列とSheet2のB列も、同様です。
C列以降のデータは、シート間で全然関係ありません。

Sheet1の行データ(A列・B列)が、Sheet2(A列・B列)にも存在しているかどうか、
を知るには、どうすればよいですか。
C列以降の列のデータは、比較する際に使いません。

つまり、
Sheet1のA = Sheet2のA
かつ
Sheet1のB = Sheet2のB
であるような行を知りたいのですが、

どうすればよいのでしょうか。

Aベストアンサー

Sheet1、Sheet2 ともに空いている列に =A1&B1 のような連結データを作り、Matchなどで比較するとか、、、

Sheet1 の E1 =A1&B1
Sheet2 の E1 =A1&B1
Sheet1 の F1 =MATCH(E1,Sheet2!E:E,0)

QExcel macroで、一番右側の見出しに新しいsheetを加えたい

お世話になります。
No.190261で「excel97で、一番右側に新しいシートを挿入させたい」(マクロ以外で)と質問した者ですが、macro以外では無理そうなので、今度はmacroでの記述方法を改めて質問させて下さい。
自動記録でやってみたのですが、

Sheets.Add
Sheets("Sheet3").Move After:=Sheets(3)

という感じで、特定のsheet(この場合sheet3)の右に加わるだけなのですが、今あるのがどんな名前のsheetであっても、とにかくそれらのsheetのさらに右側に新しいシートが加わるようにするにはどう記述したらよいのでしょうか。


ちなみに、過去の同類の質問を検索したくても、タイトルが単に「マクロの質問」「excelでこういうことはできますか?」といった感じで、内容が推測できない質問タイトルが多く、内容を一件一件見るのは大変です。質問者の皆さまには、あとの人の為にタイトルをもう少し具体的にして頂けたらと思います。

Aベストアンサー

次の1行で大丈夫でしょう。

Worksheets.Add.Move after:=Worksheets(Worksheets.Count)

QExcel97でワークシートにワークシートを貼り付けたい

エクセル97でワークシートを作っています。
作ったシートの上に、別に作ってあったシートを貼りたいのですが、セルの幅などが全然違うためきれいに貼れません。オブジェクトとして貼ることができればいいかなと思ったのですが、オブジェクトとして貼り付ける方法もわかりません。このような場合、どうしたらいいのでしょうか?
ワードや一太郎に貼り付けて並べるということも考えたのですが、エクセルだけで完結させる方法がないかと思って質問しました。お願いします。

Aベストアンサー

カメラ機能を使えばセル幅が違っても、貼り付けられます。リンクしているので、元の表の変更も反映されます。

印刷をするときなどにレイアウトの自由が利きます。
サイズと位置を自由に変更できます。

「カメラ」ボタンのコマンドをツールバーに追加します。
メニューバーの「ツール」-「ユーザー設定」を選択。
「コマンド」タブの「ツール」を選択。この中に「カメラ」というコマンドがあります。マウスで「カメラ」をつまんで、ツールバーまでドラッグします。

貼り付けたい表の範囲を選択して、「カメラ」ボタンを押します。貼り付けたい位置で、クリックします。大きさは自由に変更できます。

Qエクセル:ワークシートを自動で生成&ワークシート名を自動で割り振り

こんにちは はじめまして

エクセルのワークシートを自動で生成するやり方を教えていただけますでしょうか。

やりたいことは以下の通りです。

何件かお店がありまして、毎日の売り上げ報告がファックスで本部に送られてきます。
そのファックスを見ながら、本部ではエクセルに入力し合計と累計を出すようにしています。

今現在は雛形ワークシートを一つ作り、手動でワークシートを30,31日分をコピーし、ブックには「店舗A2006年3月度分.xls」というようなブック名で保存してあります。
うちの会社は10日締めなので、3月で言うと、20060311から20060410(←数字は西暦)までのワークシートを作ります。

ワークシートのイメージとしてはこんな感じです。↓

シート名:店舗A.xls
ワークシート名:「雛形」
----------------------------
当日の日付
商品A 単価 ○個 小計
商品B 単価 ○個 小計
    ・
    ・ 
         当日の合計
----------------------------

そしてこれの「雛形」を、自動で一か月分ワークシートをコピーするようにしたいのです。(今は手動でやってます)
VBAの本を読んで、For~Next分を使うと、指定した枚数コピーできることはわかったのですが、ご承知の通り30日の月もあれば31日の月もありまして、これを計算で自動に判断するようにできないでしょうか?

欲を言えば、さらにそのワークシート名も自動で「A店舗20060311」というように日付ごとのワークシート名を入れられるようになると助かります。

もっと欲を言えば、各ワークシートの特定のセルに当日の日付を入れてるのですが(セル番地はどこでもいいです)、そこの日付も、ワークシート名と連動して自動で入れられると助かります。

長文になってしまいましたが、どなたか教えていただけると助かります。

よろしくお願いいたします。

こんにちは はじめまして

エクセルのワークシートを自動で生成するやり方を教えていただけますでしょうか。

やりたいことは以下の通りです。

何件かお店がありまして、毎日の売り上げ報告がファックスで本部に送られてきます。
そのファックスを見ながら、本部ではエクセルに入力し合計と累計を出すようにしています。

今現在は雛形ワークシートを一つ作り、手動でワークシートを30,31日分をコピーし、ブックには「店舗A2006年3月度分.xls」というようなブック名で保存してあります。
うちの会社は...続きを読む

Aベストアンサー

申し訳ありません。会社で、サンプルを作成して、帰宅時間になったので、あまり確認せずに、提示してしまいました。
今は、自宅で、再度確認し、修正版を提示いたします。


Dim tmp_dat5 As Date
Dim tmp_dat6 As Integer
Dim cnt As Integer
Dim max As Integer
Dim nen As Integer
Dim getu As Integer
Dim sname As String
Dim tmp_day As String
Dim tmp_getu As String
Dim shop As String
nen = Sheets("Work").Range("A1").Value
getu = Sheets("Work").Range("B1").Value
If getu = 12 Then
nen = nen + 1
getu = 1
Else
getu = getu + 1
End If
tmp_dat5 = DateValue(nen & "/" & getu & "/01")
tmp_dat5 = tmp_dat5 - 1
tmp_dat6 = Day(tmp_dat5)
shop = Sheets("Work").Range("A2").Value
nen = Sheets("Work").Range("A1").Value
getu = Sheets("Work").Range("B1").Value
tmp_getu = Right("0" & getu, 2)
For cnt = 11 To tmp_dat6
tmp_day = Right("0" & cnt, 2)
sname = shop & nen & tmp_getu & tmp_day
Sheets("雛形").Select
Sheets("雛形").Copy Before:=Sheets("雛形")
ActiveSheet.Name = sname
Sheets(sname).Range("L1").Value = nen & "/" & tmp_getu & "/" & tmp_day
Next cnt
nen = Sheets("Work").Range("A1").Value
getu = Sheets("Work").Range("B1").Value
If getu = 12 Then
nen = nen + 1
getu = 1
Else
getu = getu + 1
End If
tmp_getu = Right("0" & getu, 2)
For cnt = 1 To 10
tmp_day = Right("0" & cnt, 2)
sname = shop & nen & tmp_getu & tmp_day
Sheets("雛形").Select
Sheets("雛形").Copy Before:=Sheets("雛形")
ActiveSheet.Name = sname
Sheets(sname).Range("L1").Value = nen & "/" & tmp_getu & "/" & tmp_day
Next cnt

申し訳ありません。会社で、サンプルを作成して、帰宅時間になったので、あまり確認せずに、提示してしまいました。
今は、自宅で、再度確認し、修正版を提示いたします。


Dim tmp_dat5 As Date
Dim tmp_dat6 As Integer
Dim cnt As Integer
Dim max As Integer
Dim nen As Integer
Dim getu As Integer
Dim sname As String
Dim tmp_day As String
Dim tmp_getu As String
Dim shop As String
nen = Sheets("Work").Range("A1").Value
getu = Sheets("Work").Range("B1").Value
If getu = 12 T...続きを読む


人気Q&Aランキング

おすすめ情報