[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『EXCELの隠しSHEETをACCESSへインポート』(あおくま)
ちょっとエクセルのお話とは、異なってくるかと思いますが、
もしお分かりの方がいらっしゃればご教授願います。
いま、エクセルのファイルで、隠してあるSHEETがあるのですが、
これをACCESSでインポートする方法はありますか?
ACCESS側で、決まった名前のSHEETを一括でインポートする方法は
できたのですが、そのSHEETが隠してある場合には、ACCESS上で
そのシートをみつけられないみたいなのです。
ちなみにエクセルのファイルは、全部で、250ほどあり、全ての
EXCELファイルを開いてSHEETを表示して、保存してとするのが
ちょっと面倒だったもので・・・
よろしくお願いします。
>全部で、250ほどあり、全てのEXCELファイルを開いてSHEETを表示して、 >保存してとするのがちょっと面倒だったもので・・・ マクロを作って、この作業を自動化すれば、 待っているだけで終わるので面倒なことはないと思います。 (INA)
1. エクスプローラを開きツール→フォルダオプション→表示を選ぶ。 2. 詳細設定→ファイルとフォルダの表示→デフォルトだと 「隠しファイル及び隠しフォルダを表示しない」にチェックがついているのではずし、 「全てのファイルを表示する」にチェックをつける。 3. Accessでインポートし終わったら、必ず元のとおり 「隠しファイル及び隠しフォルダを表示しない」にチェックしなおすことを忘れずに。
バージョン2002では動作確認できましたがどうでしょうか? (みかん)
隠しファイルではなくエクセルブック内の隠しシートのことかと思われますが(・・)? (ひよっぴ)
「全てのファイルを表示する」にすると、全てのシートが表示されますよ。 おやりになってみましたか? (みかん)
やってはみましたが、2000ではだめのようです。。。 私のやり方が悪いのかもしれませんが (ひよっぴ)
こちらでもできませんでした。 Windowsの設定が、ブックを開いてもいないExcelファイルに 影響するとは思えませんが・・・
(INA) @Excel2000
こちらはWin XP Excel2002 & Access2002で非表示のシートは見えないのですが・・・ (Hatch)
やはり勘違いでしょう。 (INA)
勘違いというより説明が悪かったようです。 インポートするブックは開いてないとダメなんです。 (みかん)
ブックを開いていたら、非表示のシートも見えました。 (Hatch)
ブックを開いていれば、 「隠しファイル及び隠しフォルダを表示しない」にチェック入ってても見えるようですね。。。 エクセル2000(ひよっぴ)
INAさん、 >マクロを作って、この作業を自動化すれば、 と仰いましたので、記録してみると、 Sub Macro1() Sheets("Sheet2").Visible = True End Sub こうなりましたが、Sheet2を全部のシートにするには""の中をどう変更したらいいのでしょうか。 (ひよっぴ)
Excel2000 Access2000で自分も確認してみました。 結果、 「全てのファイルを表示」「隠しファイル及び隠しフォルダを表示しない」 どちらの状態であっても、 インポート対象となるExcelブックを開いてさえいれば Access側でその隠しシートを選択する事が可能な状態となるようです。
>EXCELファイルを開いてSHEETを表示して、保存してとするのが >ちょっと面倒だったもので・・・ この操作のうち、保存する必要は無くなったって感じですかね。 対象ブック開いたままにしてインポート処理をしなければならないという手間はあるけども。 衝突追記。 >こうなりましたが、Sheet2を全部のシートにするには""の中をどう変更したらいいのでしょうか。 Sub a() Dim s As Worksheet For Each s In Worksheets s.Visible = xlSheetVisible Next End Sub あるいは Sub b() Dim i As Integer For i = 1 To Worksheets.Count Worksheets(i).Visible = xlSheetVisible Next End Sub もう一つ Sub c() Dim i As Integer For i = 1 To Sheets.Count Sheets(i).Visible = xlSheetVisible Next End Sub 無条件に全てのシートを見えるようにします。 WorksheetsとSheetsって何が違うのかな… 自己解決追記。 Sheetsはグラフシートを含む、Worksheetsは通常(?)のシートのみ、か。 参考:シート数を数える(Countプロパティ) http://www2.tokai.or.jp/mother/newhtm2/exvba/ev04/ev045.htm (ご近所PG)
もういらないでしょうけど・・・ マクロの件は、250のブックが、1つのフォルダにあるのであれば、 Do〜Loopのループ処理を用いて、そのフォルダ内のブック名をdir関数で取得しながら ブックを開く→シートを表示→ブックを保存 と繰り返して処理すれば可能です。
(INA)
ご近所PGさん、INAさん、有難うございました。 全シートを選択するとなると途端に難しくなるんですね。。。 有難うございましたm(__)m (ひよっぴ)
すみません、一つだけ教えて下さい。 s.Visible = xlSheetVisible を s.Visible = True に変えても大丈夫なようなのですが、 何かわけがあってTrue以外をお使いなのでしょうか。 (ひよっぴ)
ひよっぴさんへ。 VBEの画面でシートのプロパティを見ていただくと分かるかと思いますが (もしプロパティが表示されていなければ「表示→プロパティウィンドウ」で出ます) シートに対するVisibleの状態は、TrueかFalseかの二通りではなく、三通りあります。 -1 - xlSheetVisible 0 - xlSheetHidden 2 - xlSheetVeryHidden 私はこれにしたがって設定しました。詳しくはヘルプ参照。
とはいえ、VisibleはTrueかFalseかという二通りが一般。 Trueの持つ値は-1。 Falseの持つ値は0。 なので、 Visible = True Visible = False という書き方との互換性を得るために、 -1 - xlSheetVisible (True = -1) 0 - xlSheetHidden (False = 0) という定数値をExcel設計者は選んだのでしょう。 (ご近所PG)
ご近所PGさん、有難うございました! xlSheetVeryHidden は、メニューから「再表示」自体がグレーアウトするんですね。 すごいですね。。。 プロパティの見方も教えて下さり有難うございます。 色々覗いてみようと思います。 (ひよっぴ)
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.