AIと戦って、あなたの人生のリスク診断 >>

Excelのファイル内に5つのシートが入っています。
以前は、そのファイルを開いた時は、前回最後に編集したシートが最初に表示されていました(と思います)が、いつのまにか特定のシートが最初に開くようになってしまいました。
Ex. 以前:No.4のシートを変更して保存したら、次回開いた時はNo.4シートが表示された。
  現在:どのシートを変更して保存しても、次回開いた時は必ずNo.4シートが最初に表示さる。
どこかで設定はあるのでしょうか?。
逆に開いた時は必ず「○番目のシート」を表示する と言う事は出来るのでしょうか。

A 回答 (2件)

♯1です


VBAの設定方法ですが、
(1)メニューの「ツール」から「マクロ」にポイントを合わせて「Visual Basic Editor」を選択します。
(2)別ウィンドウが開くと思います。左メニューから「ThisWorkbook」をダブルクリックもしくは右クリック「コードの表示」してください。
(3)右に真っ白のウィンドウが開きますので、先の解答の3行をコピーして貼り付けてください。
(4)ウィンドウは「×」ボタンで閉じてくださって結構です。
(5)ブックを保存します。
以上で「Sheet1」で開く方法が完了です。シート名を変更している場合は、コード内の「Sheet1」を目的のシート名に変更してください。

ちなみに問題点として、
(1)保存したブック単体にしか利かない。
(2)マクロのセキュリティ(先ほど選択した「Visual Basic Editor」の1つ上に「セキュリティ」という項目があります)の度合いで、ブックを開く際の状況が変わります。通常「中」になってるかと思いますが、開く際にマクロの有無を聞かれます。「高」や「最高」だとマクロを使用できません。エラーになります。「小」はマクロ使用有無を聞かれませんので、すんなり上手くいきますが、回答者としてはお勧めいたしません。
以上です。
    • good
    • 2
この回答へのお礼

詳細なご説明をありがとうございました。
セキュリティ確認の問題は別として、ご指示とおりでできました。

お礼日時:2007/06/20 09:02

BOOKにマクロは設定されていますか?私はマクロでよく利用しますが、マクロ以外に設定があるかは分かりません。



VBAのThisWorkbookシートに以下を記述します。

Private Sub Workbook_Open()
   Worksheets("Sheet1").Activate
End Sub

これで、開くとSheet1になります。ただし、マクロセキュリティ
によってはマクロの有無を聞かれたりします。

この回答への補足

早々のご回答をありがとうございます。
VBA、マクロ等 まったくの初心者です。

>VBAのThisWorkbookシートに以下を記述します。
>Private Sub Workbook_Open()
>   Worksheets("Sheet1").Activate
>End Sub

は、具体的にはどのようにすればよいのでしょうか。
お手数おかけしますが、よろしくお願いいたします。

補足日時:2007/06/18 15:39
    • good
    • 0

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

このQ&Aを見た人はこんなQ&Aも見ています

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

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

Qエクセルファイルを開く時、常に同じシートから開くようにするには?

 エクセルがそこそこ使えている者です。
エクセルファイルに多数(100以上)のシートを置き、先頭シートに見出し一覧をつくり、ハイパーリンクで希望のシートへ跳ぶようにしているのですが、各シートで作業終了後そのまま閉じてしまうと、次回開く時そのシートが開くのですが、どのシートで閉じても開く時は見出しシートになるような方法を教えて下さい。
 ソフトのようなものでもないので、簡便な方法でお願い致します。

Aベストアンサー

マクロで作ります。
ツール⇒マクロの作成で マクロ名 "auto_open" として作成内容は次のマクロをコピペすればいいです。
ファイルを開いた時はいつも、"sheet1 "の "a1" にセルの指定が来るようになります。
開くシートやセルを変えたい時は、"sheet1 "や"a1"を変えることにより、任意の場所で開けます。

  Sub auto_open()
  Worksheets("Sheet1").Activate
   Range("a1 ").Select
  End Sub

QExcel起動時に特定のワークシートを開かせたい。

エクセルの起動時に特定のワークシートを開くように設定したいのですが方法がわかりません。
申し訳ありませんが、アドバイスお願いいたします。
また、VBAで教えていただけると助かります。
よろしくお願いいたします。

Aベストアンサー

以下のマクロでシート名を変更して下さい

Private Sub Workbook_Open()
Worksheets("シート名").Activate
End Sub

マクロはALT+F11でVBE画面を開き、「VBAProjectエクスプローラのThisWorkBook右クリック→「コードの表示」で表示される画面にペーストします。ブック保存後に再度ブックを開いてみてください

QEXCELの起動時に常に同じシートを開く方法について

複数のシートを作っています。一番左側に目次というシートがあります。このファイルを複数の人で使用する為、違うシートで保存される事があります。その為、ファイルを開いた時にマクロ等を利用して、常に同じ目次というシートを開く方法があれば教えて欲しいと思います。

Aベストアンサー

[ツール]-[マクロ]-[VisualBasicEditor]
ThisWorkbookに下記を書き込むとできます。

Private Sub Workbook_Open()
Sheets("目次").Select
End Sub

Qエクセルで最初に開くシートを指定

エクセルで3枚のシートが存在するブックがあります。
仮に2枚目のシートを変更して保存し閉じれば、次回からは2枚目のシートが開きます。これをVBAを使いどこのシートで保存し閉じた後にでも次回開けば必ず1枚目シートから開きたいのです。どうすればいいでしょうか?教えてください。お手数ですがよろしくお願い致します。

Aベストアンサー

WorkbookのOpenイベントで、
「Worksheets(1).Select」
と入力すればいけると思います。

Qファイルを開くと必ず一番最初のシートを表示したVBAは?

いつもお世話になっております。
エクセルについての質問ですが、保存したときは他のシートを表示にした状態でも、次にファイルを開くと必ず一番最初のシート(もしくは特定のシート)を表示した状態にできるVBAはありますか?

Aベストアンサー

 こんばんは。
プロジェクトの「ThisWorkbook」の所に以下のコードで
どうでしょうか?最初のシートをアクティブにできます。

Private Sub Workbook_Open()
  Worksheets(1).Activate
End Sub

特定のシートだったら、上記を Worksheets("シート名").Activate
に変更すれば良いと思います。

QEXCEL VBA で現在開いているブックのファイル名を取得する方法

EXCEL2003 VBAで業務を簡素化するために、現在開いているブックのファイル名を取得する方法が分かりません。
作業手順をマクロを使って処理していますが、オリジナルのワークブックをファイル名を変えて保存し、以後、このワークブックを読み込んで使用しています。
このときのVBAは、オリジナルのファイル名を使っているため、ファイル名を変更するとエラーになり、以後の業務に使用できません。
常にファイル名を取得出来るVBAをどなたか、教えて下さい。

Aベストアンサー

>現在開いているブックのファイル名
 ちょっと曖昧な表現かなぁという気もいたしますが、VBAが書いてあるブックのブック名は
ThisWorkbook.Name
で、現在 "アクティブにして" 操作対象になっているブックの名前は
ActiveWorkbook.Name
ですね。

 しかし、
>VBAは、オリジナルのファイル名を使っているため、ファイル名を変更するとエラーになり
というような文脈からすると、
ThisWorkbook.Name
の方ですかね。

Q別のシートから値を取得するとき

Worksheets("シート名").Activate
上記のを行ってから別シートの値を取得するのですが、
この処理を行うと指定したシートへ強制的にとんでしまいます。。。

※イメージ
For ~ To ~
  Worksheets("シートA").Activate
  シートAの値取得
       :
  Worksheets("シートB").Activate
  シートBの値取得
Next

このイメージ処理を行うとものすごい勢いで画面がチカチカします。。。
シートを変えずに他のシートから値を取得する方法はないのでしょうか。
教えてください!

Aベストアンサー

Worksheets("シートA").Range("A1")

みたいな感じでできませんか?

QExel VBA 別ブックから該当データを検索し、必要なデータを取得する方法について

部品表というブックがあります
A列に商品名、B列に商品番号が入力してあります。C列のコードは未入力です。
A列     B列     C列      
商品名  商品番号  コード
モータ  U-1325-L  
ホルダ  R-134256

また、コード一覧表という別のブックには、A列に商品番号と、B列にコードが、何千件も入力されています。

やりたいことは
部品表のC列のコード欄に、コード一覧表ブックから商品番号と一致するコードを貼り付けしたいのです。

部品表は、何百種類もありますので、関数ではなく、マクロで処理を希望します。

自分では、部品表の商品番号をコピーして、コード一覧表で検索し、検索結果の右隣のセル(B列のコード)の値を部品表のC列に貼り付ければよいかと思い、書いてみたんですが…

Sub 別ブックから貼り付ける()
  Dim 検索する As Long
Windows("部品表.xls").Activate
検索する = cells(i,2).Value
Windows("コード一覧表.xls").Activate
ActiveWindow.SmallScroll Down:=-3
Selection.AutoFilter Field:=3, Criteria1:="=検索する", Operator:= xlAnd

と、してみたものの、検索しても、その検索結果の隣のセルのコードをどうやって取得すればいいのかが、わかりませんでした。

基本事項は本で学びましたが、呪文のようなコードはよく理解できません。懸命にネットで検索して、訳して理解する努力をしてはいますが。

どうぞよろしくお願いします。

部品表というブックがあります
A列に商品名、B列に商品番号が入力してあります。C列のコードは未入力です。
A列     B列     C列      
商品名  商品番号  コード
モータ  U-1325-L  
ホルダ  R-134256

また、コード一覧表という別のブックには、A列に商品番号と、B列にコードが、何千件も入力されています。

やりたいことは
部品表のC列のコード欄に、コード一覧表ブックから商品番号と一致するコードを貼り付けしたいのです。

部品表は、何百種類もありますので、関数...続きを読む

Aベストアンサー

こんにちは。
とりあえず実用性も踏まえました。
メインの動作はワークシート関数のVLOOKUPをVBA上で使用していますので理解はしやすいかと思います。
また、質問文から察するに「部品表.xls」と「コード一覧表.xls」の両方を開いて処理されていますが「コード一覧表.xls」はプログラム内で開いて閉じているので実行するときは「コード一覧表.xls」は閉じて置いてください。
Option Explicit
Sub Sample()
 Application.ScreenUpdating = False
 Dim I As Long
 Dim xlBook
 Set xlBook = Workbooks.Open("C:\★★\コード一覧表.xls") '★要変更★
 I = 2
 Do While Range("A" & I).Value <> ""
  ThisWorkbook.Worksheets("Sheet1").Range("C" & I).Value = Application.VLookup(ThisWorkbook.Worksheets("Sheet1").Range("B" & I).Value, xlBook.Worksheets("Sheet1").Range("A2:B65535"), 2, 0)
  I = I + 1
 Loop
 xlBook.Close
 Application.ScreenUpdating = True
 MsgBox ("完了")
End Sub

こんにちは。
とりあえず実用性も踏まえました。
メインの動作はワークシート関数のVLOOKUPをVBA上で使用していますので理解はしやすいかと思います。
また、質問文から察するに「部品表.xls」と「コード一覧表.xls」の両方を開いて処理されていますが「コード一覧表.xls」はプログラム内で開いて閉じているので実行するときは「コード一覧表.xls」は閉じて置いてください。
Option Explicit
Sub Sample()
 Application.ScreenUpdating = False
 Dim I As Long
 Dim xlBook
 Set xlBook = Workbooks....続きを読む

QエクセルのIF関数で、文字が入力されていたならば~

エクセルのIF関数で文字が入力されていたならば~、という論理式を組み立てたいと思っています。

=IF(A1="『どんな文字でも』","",+B1-C1)

A1セルに『どんな文字でも』入っていたならば、空白に。
文字が入っていなければB1セルからC1セルを引く、という状態です。

この『どんな文字でも』の部分に何を入れればいいのか教えてください。

またIF関数以外でも同様のことができれば構いません。

宜しくお願いします。

Aベストアンサー

=IF(ISTEXT(A1),"",B1-C1)

でどうでしょうか?

Qエクセルで、条件に一致した行を別のセルに抜き出す方法

エクセルで、指定した条件に一致するセルを含む行をすべて抜き出す方法が知りたいです。

たとえば、

<A列> <B列> <C列>
7/1 りんご 100円
7/2 ぶどう 200円
7/2 すいか 300円
7/3 みかん 100円

このような表があって、100円を含む行をそのままの形で、
別のセル(同じシート内)に抜き出したいのですが。

7/1 りんご 100円
7/3 みかん 100円

抽出するだけならオートフィルターでもできますが、
抽出結果を自動的に、別の場所に、常に表示させておきたいのです。

初歩的な質問だと思いますが、検索しても分からなかったので、よろしくお願いします。

Aベストアンサー

同じ質問が結構よく出てますが、そんなに初歩的でもありません
別シートのA1セルに「100円」と入力し、そのシートの任意のセルに以下の式を貼り付けて下さい。後は、下方向、右方向にコピー。
日付のセル書式は「日付」形式に再設定してください

=IF(COUNTIF(Sheet1!$C:$C,$A$1)>=ROW(A1),INDEX(Sheet1!A:A,LARGE(INDEX((Sheet1!$C$1:$C$500=$A$1)*ROW(Sheet1!$C$1:$C$500),),COUNTIF(Sheet1!$C:$C,$A$1)-ROW(A1)+1)),"")

データ範囲は500行までとしていますが、必要に応じて変更して下さい


人気Q&Aランキング