ママのスキンケアのお悩みにおすすめアイテム

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

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

A 回答 (3件)

マクロで作ります。


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

  Sub auto_open()
  Worksheets("Sheet1").Activate
   Range("a1 ").Select
  End Sub
    • good
    • 25
この回答へのお礼

 ありがとう御座いました。No.1さんのより簡単そうだったので
早速やってみました。これで、このファイルを開く時は常に新しい
気持ちで作業ができそうです。^U^

お礼日時:2008/01/17 12:14

先頭シートのシート見出しにセルを持って行って閉じるのが一番簡単

    • good
    • 7

マクロで


thisworkbookのところに

Private Sub Workbook_Open()
 sheets("シート名").activate
End Sub

もしくは
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Sheets("シート名").activate
end Sub
    • good
    • 9
この回答へのお礼

 ありがとう御座います。早速やってみます。

お礼日時:2008/01/12 14:31

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

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

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

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

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

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

QExcelを開いた時に表示されるシート

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

Aベストアンサー

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

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

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

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【Excel VBA】マクロでExcel自体を終了させたい

環境:WindowsXP、Excel2003

マクロでエクセルを終了(ブックを閉じて、アプリケーション自体も終了)させたいのですが、以下のコードではアプリケーションが閉じてくれません。

ThisWorkbook.Close
ExcObj.Quit
Application.Quit

どこか悪いところはありますでしょうか?

よろしくお願いします。

Aベストアンサー

普通に考えれば質問者のコードで上手くいきそうですが
hana-hana3さんの回答にもあるようにThisWorkBook.Closeでコード終了となりますので
Application.QuitをThisWorkBook.Closeの前にもってこないといけません。
Application.Quitはそれがあるプロシージャのコードが全て終わるまで
その実行を保留するちょと特別動作をします。

'-------------------------------------
 Application.Quit
 ThisWorkbook.Close
'-------------------------------------
 
 

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

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

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

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

Aベストアンサー

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

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

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

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

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

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

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

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

宜しくお願いします。

Aベストアンサー

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

でどうでしょうか?

QExcelファイルの特定のシートを開くには?

過去ログにもありましたが、あまり理解できなかったので質問いたします。

WEBぺージ上に「Sheet1」、「Sheet2」と記載し、リンク先はそれぞれのシートを開くようにしたいのです。

使用環境:
エクセルファイルは頻繁に更新されますが、WEBに載せる目的は閲覧のみです。
社内サーバーに置いています。

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

Aベストアンサー

<a href="xxxx.xls#Sheet1!A1">

のような指定でどうでしょうか。
上の例では、Sheet1のA1のセルを指定しています。

QEXCEL VBAマクロ作成で、他のEXCELからデータを取り込みたい

メインプログラム(EXCEL VBA)より、
他のフォルダーにあるEXCELの項目の内容を取り込みたいです。
たとえば他のフォルダーのEXCELのRange("A2:A3").ValueをメインプログラムのRange("C2:C3").Valueにセットしたい時です。

・コマンドボタン押したら、どこのEXCELから取り込むかのポップアップ(?)は、表示はできてます。
・作業者が選んだパスとブックもMsgBoxで表示できてるので、もらう相手の場所も取得できてます。

・となると次はOPEN,INPUTですか?
テキストデータの取り込みですと、Inputでそのバッファを定義してるのですが、なんか違うような。。。

よろしくお願いします!

Aベストアンサー

私がやる方法です。

Dim writeSheet As Worksheet ' 自分自身の書き出し先シート
Set writeSheet = ThisWorkbook.Worksheets(1) ' Sheet1 を参照

Dim readBook As Workbook ' 相手ブック
Set readBook = Workbooks.Open(filename) ' 相手ブックを開いて参照
Dim readSheet As WorkSheet ' 相手シート
Set readSheet = readBook.Worksheets("sheetName") ' 相手シートを参照
' または Set readSheet = readBook.Worksheets(sheetIndex)

' 例えば
writeSheet.Cells(1, 1).Value = readSheet.Cells(2, 2).Value ' 相手シートの B2 の値を自分自身の A1 に書き込む

readBook.Close False ' 相手ブックを閉じる
Set readSheet = Nothing
Set readBook = Nothing

私がやる方法です。

Dim writeSheet As Worksheet ' 自分自身の書き出し先シート
Set writeSheet = ThisWorkbook.Worksheets(1) ' Sheet1 を参照

Dim readBook As Workbook ' 相手ブック
Set readBook = Workbooks.Open(filename) ' 相手ブックを開いて参照
Dim readSheet As WorkSheet ' 相手シート
Set readSheet = readBook.Worksheets("sheetName") ' 相手シートを参照
' または Set readSheet = readBook.Worksheets(sheetIndex)

' 例えば
writeSheet.Cells(1, 1).Value = readSheet.Ce...続きを読む

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

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

Aベストアンサー

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

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


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング