滋賀県の事務処理・オフィスの業務改善のことなら

御社の業務改善でお悩みではないですか?
滋賀県のパソコンや業務改善のサポートならお任せ下さい!!

トップページ>Excel & Access

お客様から非常に多いExcelやAccessなどのソフトウェアに関してのご質問や、その他さまざまな質問を順次紹介致します。
お客様の使用方法によっては適さないものもあるかと思いますが・・・
参考にして頂ければと思います。

◆Excelの自作関数からAccessデータベース参照の方法(VBA)

ExcelのVlookup関数の参照先をAccessのテーブルにするような感覚の関数を作成します。
以下の5番目のソース内のConnectionStringを変更することで、MicrosoftのSQL-Serverやその他SQLを使用したサーバに対応することが出来ます。
まず、ExcelからAceessのテーブルのデータを呼び出すためのファイルを作成します。
テスト環境は、Excel2003・Access2003とMDAC2.8です。

  1. デスクトップにExcelとAccessのファイルを作ります。
    (この例ではファイル名はそれぞれEXCEL.xlsとACCESS.mdbにします)

  2. Excelから呼び出したいデータ用のテーブルをAccessに作成します。
    1で作成したAccess.mdbにテスト用のデータを保存するためのテーブルを次のような条件で作成します。
    テーブル名:tPrice
    フィールド名:CD(テキスト型・その他の設定項目はデフォルト)
    フィールド名:PRICE(通貨型・その他の設定項目はデフォルト)

  3. Accessのテーブル(tPrice)にサンプルデータを入力します。
    Excelの自作関数で参照する時、CDを入力しPRICEを検索させるといった感じになります。
    CDPRICE
    CD000112000
    CD000213000
    CD000314000

    データの入力が終わりましたら、これでAccess側の準備は終わりです。
    (CDには品番をPRICEにはその品番の単価などをよく入力されます。)

  4. 次にExcel側の自作関数を作成します。
    1で作成したEXCEL.xlsを開き、[alt]+[F11]でVisual Basic Editorを開きます。
    (F11キーがキーボードにない方は、[alt]→[T]→[M]→[V]の順でキーを入力すると開きます。)

  5. Visual Basic Editorを使用して、標準モジュールに自作関数を作成します。
    [alt]→[I]→[M]の順番でキーを入力すると、標準モジュールの下に「Module1」が作成されます。
    「Module1」を選択するためにダブルクリックし、以下のモジュールを入力します。

    Function CD_TO_PRICE(CD As String) As Currency Application.Volatile Dim cn As New ADODB.Connection Dim rs As New ADODB.Recordset Dim ret As Currency cn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & _ ActiveWorkbook.Path & "\Access.mdb" cn.Open rs.Open "SELECT CD,PRICE FROM tPRICE WHERE CD = '" & Trim(CD) & "';", _ cn, adOpenStatic, adLockReadOnly If rs.RecordCount = 1 Then ret = rs.Collect("PRICE") Else ret = 0 End If CD_TO_PRICE = ret rs.Close cn.Close Set rs = Nothing Set cn = Nothing End Function

  6. これで、Excelの自作関数「CD_TO_PRICE」ができましたので、実際のワークシートでこの関数を利用することができます。
    利用方法は、Excelの任意のセルに「=CD_TO_PRICE(セル番号)」でセル番号を参照して、AccessのデータをExcelで表示することができるようになります。
    もし、モジュールが動作しない場合は、VBAの参照設定がない場合があります。動作しない場合は以下を確認してください。
    [alt]→[T]→[R]を順番に入力し「参照設定」を表示します。この画面で、「Microsoft ActiveX Data Objects 2.X Library」にチェックがない場合は、チェックをしてからもう一度動作確認を行って下さい。
***免責***
  • このモジュールはあくまでサンプルですので、動作保障や速度の保障は行っておりません。
  • SQLインジェクションには対応しておりません。


  • ◆1本のLANケーブルを2本にする配線

    タイトル通り、1本のケーブルを2つに分ける方法です。

    下の写真は実際に作成したケーブルです。

    1本のLANケーブルを2本に分けるケーブル 2本に分けたケーブルのコネクタ拡大図

    このケーブルを真ん中で切断して、延長用コネクターを使用すれば1本の配線を2本に分けることが出来ます。まずは半分に切断して両端にモジュラープラグを取付ます。

    両端で切断してモジュラープラグを取付

    両端に付けたモジュラープラグに延長コネクタを取り付けて完成です。白色のケーブルが1本しかないケーブルの代わりです。

    両端で切断してモジュラープラグを取付

    このケーブルを作ったきっかけは、1階にCTUとルータがあり、2階でインターネットと光テレビを見たいが1階から2階へのケーブルが1本しかなかったので作成しました。もし、必要な方がおられましたら¥500(送料は着払いでお願いします)で作成いたします。延長用コネクターはご自身でご用意ください。Y時型のケーブルを2本送ります。(恐らく誰もいらないと思いますが)問い合わせ画面からご注文ください。