• ベストアンサー

EXCELでのデータベースの作成方法について

AAAというEXCELファイルがあります。 その中にシート「AAA-a」を作成します。 次に「AAA-b」を作成します。というようにどんどん増えていくとします。 次にBBBというEXCELファイルを作成し、その中のA1セルにAAAファイルの「AAA-a」シート名を読み込みそこに「AAA-a」シートまでのハイパーリンクをつけたいです。 A2セルにも「AAA-b」のハイパーリンクというようにどんどん自動で増やしていきたいのですがどうやればいいかわかりません。 多分マクロが一番いいかと思うのですがわかる方がいましたら教えてください。 よろしくお願いします。

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

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

シートの目次的なブックを作り、リンクを設定したいと言うことと思います。わたしも仕事で夢想した事もありましたが、せず仕舞いでした。 私は素人ですが、本件は難しかった。苦労して息切れ状態で、これを質問者の要望で更にチューニングする力がありませんが、参考までに。 標準モジュールに Sub test01() Dim ws As Worksheet Dim wb1 As Workbook Dim wb2 As Workbook Set wb1 = Workbooks.Open("aaa12.xls") dirname = Dir("aaa12.xls") pathname = ActiveWorkbook.Path ' MsgBox pathname & "\" & dirname Set wb2 = Workbooks.Add i = 1 For Each ws In wb1.Worksheets MsgBox ws.Name sn = ws.Name wb2.Worksheets("sheet1").Cells(i, "A") = sn ActiveSheet.Hyperlinks.Add anchor:=Cells(i, "A"), _ Address:=pathname & "\" & dirname, TextToDisplay:=sn, _ SubAddress:=wb1.Worksheets(i).Name & "!A1" i = i + 1 Next wb2.SaveAs "BBB.xls" wb1.Close wb2.Close End Sub 質問のAAA.xlsに当たるのが、私の場合上記aaa12.xlsです。 質問のBBB.xlsは新規ブックとして、その名のブックを作って保存してます。 本モジュールは新規ブック(Book1)のモジュールの中に 作っています。3つブックを開いています。 >自動で増やしていきたいのですが・・・ 本件はいわゆる「バッチ処理」(注)に当たるもので、AAAにシートを増やした時、即座にBBBファイルにハイパーリンクを登録するものではありません。 -- (注)一区切りのデータ入力が済んで、切りのいい機会に、操作者が起動をかけて、プログラムを実行する方式。 -- Sheets.Addの事象を捉えるイベントはないと思うので(NewSheetイベントがあるがどういうものか分からない) BookのBeforeCloseイベントなどの時に,上記と似た中身の プログラムで、ハイパーリンクを増やすなどすることになるのかと思います。 しかし質問者のVBAの技量が分からないが、理解しヒントを得て、修正してもらえるのかどうか?です。 上記コード自身は、私の環境でテストして動いたので、 「自信あり」にしてます。

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

その他の回答 (1)

  • aa109
  • ベストアンサー率11% (36/310)
回答No.1

自動という言葉が出る限り、VBAを使わないと 実現できません データベース(以下DB)とは 単なるオートフィルターを使った程度のものでも 立派なDBになります しかしDBはエクセルでやる場合 よーく仕組みを考えておかないと件数が増え、 使い勝手が悪いと思ってもどうにもならなくなってしまいます またこれらを説明するにはこのスペースでは 不可能でしょう 1冊本を買うことをお勧めします

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

関連するQ&A

  • エクセルVBAハイパーリンクの自動設定について

    はじめて質問させていただきます。 エクセルVBAハイパーリンクの自動設定についてですが A列にAAA、BBB、CCC、DDD・・・という文字列が入っています。 D:\dataというフォルダーにAAA-01、BBB-02、CCC-01、DDD-05 という名前のファイル(.DOC)が入っています。 A列の文字列にハイパーリンクを貼りたいのですがどうしたらよいでしょうか? AAAの文字にAAA-01.docのハイパーリンクを自動で貼る。 -01はファイルのバージョンで更新されたら-02、-03と変わって いくため頭から3文字があえばリンクを貼るようにしたいのです。 よろしくお願いします。

  • EXCELで複数行の検索

    初心者です。 Aファイルのaaa、bbbなどをキーに Bファイルを検索してできるだけ簡単にマクロ等使わずに 下記のような抽出をする方法があれば教えてください。 よろしくお願いします。 Aファイル aaa bbb ccc Bファイル(例えば「ddd」と「あ」は別セルです) ddd あ eee い aaa う fff え bbb お ggg か ccc き 結果 Aファイル aaa う bbb お ccc き

  • エクセルのマクロで、別ファイルの数値を参照する方法

    現在aaa.xlsというファイルを開いていて、 そのセルA1には20070621という数値が入っています。 別にbbb_20070621.xlsというファイルがあって、 そのファイルのsheet1内の、B1の値を参照したいと思います。 bbb_20070621.xlsのようなファイルが無数にあるので、 ファイルを開かなければいけないINDIRECT関数は使いたくありません。 =INDIRECT("[bbb_"&A1&".xls]Sheet1!B1") ファイルを開かず参照できるように、 できればマクロ(VBA)で組みたいと思っています。 RangeやCellでいろいろ試してみたのですが、 どうもうまくいかず、 分厚いマニュアルにも書いてありませんでした。。 初歩的な質問ですいませんが、 どなたかよろしくお願いします。

  • 複数セルを結合して一つのセルにしたい

    エクセル関数の質問です。 A列のセルに、数字が並んでいます。 aaaという部分はカテゴリーを示すものです。 B列のセルに同じカテゴリーの別の数値を連結させ、スペースで区切ってひとつのセルに表記させるにはどうすればいいでしょうか? concatenate関数を組み合わせて式を作ろうとしたのですが、うまく出来ませんでした。 VBAやマクロ、ユーザー定義関数になっても構いません。 ご教授ください。 A       B aaa_0001  aaa_0002 aaa_0003 aaa_0002  aaa_0001 aaa_0003 aaa_0003  aaa_0001 aaa_0002 bbb_0012  bbb_0013 bbb_0013  bbb_0012 ccc_0017

  • エクセルでセルへのハイパーリンクを作成する方法

    エクセルで「目次シート」を作成して、セルへのハイパーリンクを作成する方法は、以下の方法で可能であることは理解できました。 http://allabout.co.jp/gm/gc/394253/2/ シートがたくさんある場合、マクロ等を利用して簡単に「目次シート」にハイパーリンクを設定する方法はないでしょうか? よろしくお願いします。

  • 【エクセル】 関数を使って他のエクセルの値を読み込みたい

    エクセルで外部ファイルの値を読み込みたいのですが、その際に読み込み先(シート)を関数を使って切り替えたいので、アドバイスをいただけないでしょうか。 検索で調べてみたらVBAを使う回答が多いのですが、VBAを使える人が周りにいない(私もそうです)ので、後々のメンテナンスを考えると関数を使って切り替えたいのです。 【環境】 WINDOWS XP エクセル2000 C:\AAA (CドライブにAAAというフォルダ) フォルダAAAには、BBBとCCCというエクセルファイルがあります CCCには、シート名1、2、3という3つのシートがあります。 【目標】 ファイルBBBのセルの値を操作すれば、読み込み先が変更されてBBBで表示される値が切り替わる。 【だめだった例】 BBBのセルA1にシート名を入れます。「1~3の数値」 同じくセルB1にパスを表示させます「="'C:\AAA\[CCC.xls]1"&A1&"'"」 ・・・後ろのA1が変化することで読み込み先が変わるはず。 同じくセルC1にCCCから読み込んだ値を表示させます。 「=INDIRECT($B$1&"!"&ADDRESS(ROW(F7),COLUMN(F7)))」  ・・・B1で表示された読み込み先のセルF7の値を表示するはず。 結果は「#REF!」になります。 CCCを同時に起動させると上手く読み込むので、リンクの問題なのでしょうか? なお関数を使わないでパスを記述したセルでは、CCCを起動させなくても上手く読み込んでくれます。 よろしくお願いします。 

  • エクセルで教えて下さい。

    同じような質問があったらごめんなさい。 エクセルでシート1にデータを入力してシート2に データを整理したいのです。 シート1には重複した行があります、これを シート2には重複した行を省いた表にしたいのですが どうしたら出来るのですか? 出来ればマクロは使いたくない(使い方がわからないです) のですが。 やりたい事 シート1 --------------- AAA|45 AAA|30 AAA|20 BBB|50 CCC|30 CCC|20 シート2 ---------------- AAA| BBB| CCC| ---------------- AAAとCCCの重複している 行を省いてシート2に入力されるように したいです。 宜しくお願いします。

  • エクセルの入力規則で複数のリストを選択する方法

    ご教授をお願い致します。 エクセル2003を使っているのですが、 統計というファイルのA1のセルで入力規則を入れようとしています。 今現在、「AAA」というシートにリストを作っておき、(_1という名前で作成) 元の値を「=INDIRECT("_1")」とした、入力規則を作成しています。 今回、新しいシート「BBB」というシートを作成し、そこに新しいリストを作成を考えています。 AAAのシートもしくはBBBのシートにあるものをドロップダウンリストとして 管理のA1で選べるようにするということはできるのでしょうか。 説明の仕方がうまくいきませんが、どなたかご教授をお願い致します。

  • 複数のexcelファイルの置換について

    AAA.xlsというファイルの中の情報を複数のexcelファイル(A.xls、B.xls、C.xls、D.xls)でリンク付けしてあるとします。 AAA.xlsをBBB.xlsに名前を変更するとリンクが成り立たなくなってしまいます。 そこで、一括でリンクを変更する方法を教えてください。 マクロでもいいです。 =[AAA.xls]Sheet1!$A$1 これを =[BBB.xls]Sheet1!$A$1 に一括変更したいのです。 よろしくお願いします。

  • エクセルでハイパーリンクを自動的に設定したい

    A1セルに、実ファイル名 B1セルに、そのパス が入力されている場合、ハイパーリンクの設定をせずに A1、B1セルを利用して、C1セルをクリックすれば 自動的にファイルが開く と言うような事(マクロ?)は 出来るでしょうか? 何百行もあるため、1件ずつハイパーリンクを設定していくのは 現実問題無理ですので。 ex.      A       B            C 1  aaa.doc  C:\ドキュメント\Word   ● C1セルをクリックすると、aaa.doc が開く よろしくご教示 お願いいたします。

【MG7730】スマホと接続出来ない
このQ&Aのポイント
  • 今年1月まではスマホアプリにおいて該当プリンタとは接続出来ていました。
  • 今月に入ってから接続しようとするとプリンター検索出来なくなりました。
  • 接続するスマホはXperia Android端末です。補足として他のスマホ(iPhone)では問題なく検索出来印刷も可能です。
回答を見る

専門家に質問してみよう