ACCESSのVBAで、GetOpenFilename メソッドを使いたいのですが、VBAで記述を行うとエラーになってしまいます。EXCELのVBAでは、記述できます。ACCESSのVBAでは、使用できないのでしょうか? どなたか、教えて下さい。 (ACCESSは、Office XPです) 要はファイルを開くダイアログが出たらOKなのですよね? GetOpenFileNameはAPI関数にあります。エクセルで使用していたGetOpenFileNameはEXCEL関数のようですね。 同じ名前なので、とまどいました。 AccessではAPIでやる必要があるようです。 以前に作成したサンプルの抜粋です。よかったら参考にしてください。 Public Const MAX_PATH = 260 Public Type OPENFILENAME lStructSize As Long '構造体の
概要 外部の MS-Access 形式データベース ファイル(MDB ファイル≒ Jet データベース)に接続/操作する手段は用途に応じて複数用意されています。これらを熟知していれば、MDB 間の連携に関しての障害はほとんどありません。しかし、接続方法個々に特徴や制限があり、その多様性自体が初心者を混乱させかねないのも、また事実です。 ここでは外部 MDB に接続/操作する手段を整理して、用途に応じて適切な手段を選択できるような指針を提供します。 また接続の際に特に問題となりやすいパスワードの指定についても合わせて解説します。 以下で紹介する各種メソッドについては、ヘルプに詳しい説明や使用例が載っています。本トピックはそれら各種接続手段の位置づけを明確にするものであり、個々の使用法詳細をヘルプに代わって解説するものではありません。 オプション値などについては省略している場合がありますので、
Access に Excel のデータを読み込む場合、通常は TransferSpreadsheet メソッドを使用します。 それぞれのフィールド型は Excel の表の1番上 最初の数行 のデータ (見出しではなく、その下のデータ部分の1番上です) を JET が判断して決定しているようです。 大抵の場合これでうまくいきます。 ただし、1番上 最初の数行のデータが数値だった場合、2行目以降 下の方に文字列データがあったとしても、 Access 側のフィールド型を数値に決定してしまい、変更はできません。 この場合、そのフィールドにある文字列データは全てはじかれ、エラーデータとなってしまいます。 以下は文字・数値交じりのデータを Access にエラーを出さずに読みこませる方法です。 ≪準備≫ 実行前に、予め Access 側に仮のテーブルを作成してください。 仮テーブルの名称は
ExcelのワークシートからAccessにADOを使って接続し、テーブルに書き込むVBAを作成してみましょう。 今回の事例ではIDをキーとしたテーブルへの新規登録・更新までのお手軽なサンプルです。 尚、今回の関連記事としてADOを使ってテーブルを読み込む「ADOを使ってExcelからAccessデータを利用してみよう」があります。ExcelのシートやAccessのテーブルは前回のものをそのまま利用しますので、テーブルデザインや参照設定等はそちらのエントリーをご参考下さい。 テーブルをADOで書き込む為のVBAコード Sub DB_Write() Dim adoCON As New ADODB.Connection Dim adoRS As New ADODB.Recordset Dim strSQL As String Dim odbdDB As Variant Dim wSheetNam
会社で、営業さんの行動予定を毎日Excelの表を使って作成して、プリントアウトして貼りだしているんですが、 毎日の分をコピーして、 しかもシートの左上のセルにある日付を入力し直して… という気が遠くなりそうな作業を(おばあちゃんが)しています。 時間のあるときにまとめて作成してくれているみたいなんですが、 メンバーが変わったりもするので 「せっかく作ってくれたんですが…」 みたいなことがよく起こります。 これを自動化しました。 こんな感じの表。 実際にはここに行き先が入ります。 塗りつぶしてあるのはメンバー名。 セルA2には日付。 セルB3にはIF関数がはいってて、A2の日付に連動します。 その下のA列にはメンバーとエリア。 一日ごとにシートが分かれていて、1ブックでひと月分。 今回は、シート"1日"を元に、その月の分を日付をいれて複製するように組みました。 Option Explicit
現金出納帳を事例にして「実践!Excelマクロ」をアップします! 今回はシートのコピーを題材にして実際のマクロを作成してみましょう。 現金出納帳のようなExcelシートでは、月を変えて新しいシートを作成する際にシートをコピーして利用する事が多いと思います。 その場合、シートのコピーだけでは無くシート名を変えたり、入力された文字をクリアしたり、繰越残高を入力したりとその他にも面倒な処理が付きまといます。 この一連の処理をマクロを使ってボタン一発で実行出来るようにしましょう。 シートのコピーと月の繰り越しをマクロ化する シートコピー用の[繰り越し]ボタンを配置してマクロを作成しましょう。動作イメージは以下の通りです。 今回作成するマクロの処理ステップは以下の通りです。 当月の最終残高を新規シートの繰越残高欄にセットする [出納帳]シートをコピーする コピーしたシート名を翌月(yyyy年m月)に
VB、C#などの.NET系言語でMicrosoft Excel(以下、Excelと略)を取り扱う際、通常はExcelへの参照設定をして、 事前バインディングの手法でプログラムを作成します。 作者も今まではこの手法でExcelへの入出力を伴うアプリケーションを制作してきました。 この手法は、アプリケーションで使用するExcelのバージョンが指定されている場合には有効に使えますが、 Excelの全バージョンへの対応が要求されるアプリケーションではバージョンの互換性の問題が発生する可能性があります。 Excelのバージョンに影響されないプログラミング方法に、遅延バインディング(実行時バインディング)の手法があります。 この手法には、プログラムの実行速度が事前バインディングの場合よりも遅くなるという問題があります。 また、Option Strinct On でのプログラミングがしにくいために、Op
Not your computer? Use a private browsing window to sign in. Learn more about using Guest mode
おもしろいソフトを見つけたので紹介します。 Excelで表で作ったものをテキストに変換できる「らくらく罫線」 というExcelアドインです。 Excelで作成し、変換できるため、とても便利です。 Excelとの連携がおもしろい、便利だと感じました。 (このようなソフトを作ろうと思ったのですが、すでにこれがありました。 欠点があるとすればExcelのある環境が必要なことぐらい。) ↑作成イメージ。操作は簡単。 ↑複雑な表もあっというまにテキストにできる。 らくらく罫線のダウンロード(Vector) http://www.vector.co.jp/soft/win95/net/se336721.html ◆おまけ 以下が実際のテキストです。 ※等幅フォント(MS ゴシックなど)で見てください。 ※プロポーショナルフォント(MS Pゴシックなど)で見るとずれてしまいます。 ┌──────────
このページでは、ワークシートでユーザー定義関数を利用する手順をご紹介します。 今、ワークシートに以下のようなデータがあり、目印としてセルに赤い色がつけてあります。この色のついたセルだけを合計するにはどうすれば良いのでしょうか? 実は、ワークシート関数の中にはセルの色を取得できる関数はありません。しかし、マクロを使えば可能です。そこで、今回は VBA でユーザー定義関数を作り、色を取得するようにしてみましょう。 (色の認識には個人差があるため、色に重要な意味を持たせることは、一般的には避けるようにしてください) Visual Basic Editorを起動します。 アクティブブックのプロジェクトに標準モジュールを挿入します。ユーザー定義ワークシート関数は標準モジュールに作成する必要があります。 標準モジュール Module1 が挿入され、コードのウィンドウが開きます。 このコードのウィンドウ
テーブル <テーブル名> はほかのユーザーが排他的に開いているか、既にユーザー インターフェイスを介して開いているので、プログラムによって操作することはできません。
DoCmd.Echo 画面の再描画を制御する。 Visual Basic で "Echo/エコー" アクションを実行します。。 '画面の再描画を止める DoCmd.Echo False '画面の再描画を行う DoCmd.Echo True DoCmd.FindRecord レコードの検索を行う。 Visual Basic で "FindRecord/レコードの検索" アクションを実行します。 VBAでフォーカスのあるコントロールを検索する。 'テキストボックス[氏名]の内容が"山田"で始まる最初のレコードを検索します '検索の対象となるコントロールにフォーカスを移動 DoCmd.GoToControl "氏名" '文字列の先頭と照合 DoCmd.FindRecord "山田", acStart 'テキストボックス[氏名]の内容が"山田"で始まる最初のレコードを検索します '検索の対象となる
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く