"dbtalk:Excelアドイン" はシステム開発者向け汎用(*)のデータベース操作ツールです。
データベース上のデータ閲覧・更新をExcelアドインとして実現。
Excel単体で完結するダイレクトな操作感、ラフな抽出からExcelフィルタを駆使しての再絞込みなど、Excelをベースに据えた使い勝手は他ツールとの一線を画します。
(*)特定のDBMSに依存しないマルチデータベース対応です。接続先データベースに対応したOLE DB、またはODBCドライバのセットアップが必要です。
このサイトでは"dbtalk:Excelアドイン" の操作方法などについて解説しています。
次の機能があります。
№ | 機能 | 説明 |
---|---|---|
1 | データの抽出 |
データベース上のデータを抽出しシートに表示します。WHERE句の指定などができます。 また、選択セルの値を条件とする抽出支援機能を活用すれば、条件文記述の負担を軽減できます。 |
2 | データの反映(挿入/更新/削除) | シートのデータをデータベースに反映します。レコードの挿入・更新・削除が可能です。 |
3 | SQLの作成(挿入/更新/削除) | データベース上のデータを操作するSQLを作成します。レコードの挿入・更新・削除について作成が可能です。 |
4 | SQLの実行 |
一般SQLを記述し実行します。検索・更新などのDML、定義系であるDDL、PL/SQLなどのプロシージャが記述できます。 複数文まとめての発行も可能です。 |
5 | SQLファイルの実行 |
一般SQLの記述されたファイルを指定し実行します。 複数文まとめての実行も可能です。 |
6 | 選択2シートの比較 | シートに抽出したデータの比較を行います。主キーによる突合せの結果をセル着色にて表示します。 |
7 | その他ユーティリティー | シートの並べ替えや、最近閲覧したシートへの遷移をサポートします。(ver. 12.11) |
メニューから「接続/切り替え」を選択します。
メニューはリボンの「アドイン」タブからアクセスします。以降同様。
「接続/切り替え」フォームが表示されます。
「新規」ボタンを押下します。
「OLE DBプロバイダ」を選択します。
この例ではODBCドライバ経由の設定を採用しています。
(Oracleの場合は、「Oracle Provider for OLE DB」を選択します。「Oracle Provider for OLE DB」は、Oracleクライアントのインストールにより選択可能となります。)
「次へ」ボタンを押下します。
データソース、ユーザー名、パスワードを指定します。
必要に応じ「パスワードを保存する」チェックボックスをオンにします。
「OK」ボタンを押下します。
必要に応じ「名称」を変更します。
「接続」ボタンを押下します。
パスワードを保存しない設定の場合、「ログイン」フォームが表示されます。
ユーザー名、パスワードを入力し「OK」ボタンを押下します。
データを抽出するにはまずテーブルの一覧を取得する必要があります。
メニューから「テーブル一覧の取得」を選択します。
必要に応じスキーマを指定します。(ver. 12.13)
省略時はデフォルトのスキーマが対象となります。
「OK」ボタンを押下します。
テーブル一覧が出力されます。
必要に応じ抽出条件やソート条件を指定します。
"where"や、"order by"を含めて記述してください。
誤って膨大なデータを抽出してしまわないよう、条件"WHERE 1 = 2"(初期値)が設定されます。
不要な場合は条件を削除または修正するか、初期化パラメータの編集を参照し初期値を変更してください。
対象のテーブルを含む行(列は任意)を選択し、メニューから「データの抽出」を選択します。
ソート条件を指定しない場合、主キーによるORDER BY句が補完されます。
複数行の選択が可能です。
テーブル名のシートにデータが出力されます。
テーブル名のシートをアクティブにし、メニューから「データの抽出」を選択した場合でも同様にデータの抽出が可能です。
必要に応じ「抽出条件(WHERE句など):」に抽出条件やソート条件を指定します。
"where"や、"order by"を含めて記述してください。
メニューから「データの抽出」を選択します。
この場合「データの抽出」フォームが表示されます。
目的に応じたボタンを押下します。
№ | 項目 | 説明 |
---|---|---|
1 | 「抽出」ボタン | 「抽出条件(WHERE句など):」に指定の条件でデータを抽出します。 |
2 | 「選択セルの条件で抽出」ボタン |
選択セルの値をを条件としてデータを抽出します。複数セルの選択が可能です。 同一行のセルはAND条件、行ごとにOR条件となります。(ver. 12.19) 以下は使い方の例です。 |
3 | 「選択セルへ抽出」ボタン |
選択セルのみへデータを抽出します。複数セルの選択が可能です。 主キーが存在しないテーブルでは無効化されます。 |
4 |
「全件抽出」ボタン (ver. 12.19) |
条件をクリアしてデータを抽出します。 |
テーブル名のシート上で、更新対象の行(列は任意)を選択します。
複数行の選択が可能です。
メニューから「データの反映」を選択します。
「データの反映」フォームが表示されます。
目的に応じたボタンを押下します。
№ | 項目 | 説明 | 補足 |
---|---|---|---|
1 | 「更新」ボタン |
選択レコードを更新します。 すべての列を更新します。 主キーが存在しないテーブルでは無効化されます。 |
対象は可視セルに限定されます。 例えばオートフィルタで絞った後、ある列を全選択するなどして更新ボタンを押下した場合、フィルタリングされた(見えている)行のみの更新となります。 |
2 | 「挿入」ボタン | 選択レコードを挿入します。 | |
3 | 「削除」ボタン |
選択レコードを削除します。 シート上からは削除されません。 主キーが存在しないテーブルでは無効化されます。 |
|
4 | 「選択セルで更新」ボタン |
選択セルのみを更新します。複数セルの選択が可能です。 主キーが存在しないテーブルでは無効化されます。 |
|
5 | 「データは反映せずにSQLのみ作成」チェックボックス |
SQL作成機能を提供します。 押下ボタンに応じたSQLを作成し、クリップボードに転記します。 データベースに対する反映は行われません。 クリップボードへの転記が失敗する場合の救済措置として結果は右端の領域外セルへも出力しています。(ver. 13.04) |
メニューから「SQL入力フォーム」を選択します。
「SQL入力」フォームが表示されます。
SQLを入力します。
複数のSQL文を記述可能です。「SQL終端」プルダウンで1SQLの終端となる区切り文字を指定できます。
「実行」ボタンを押下します。
「履歴呼び出し」の「キーワード」には、SQL文や接続先名称に含まれる文字列を指定できます。(ver. 13.00)
履歴を呼び出すにはスピンボタンを押下してください。
メニューから「SQLファイルの実行」を選択します。
SQLファイルを選択します。
ファイルには複数のSQL文を記述可能です。「SQL終端」プルダウンで1SQLの終端となる区切り文字を指定できます。
「OK」ボタンを押下します。
メニューから「SQLの作成」を選択します。
「SQLの作成」フォームが表示されます。
操作方法については「データの反映」の「データの反映」フォームに準じます。
比較したいテーブル名の2シートを同時に選択します。
双方のシートのデータは主キー昇順にてソートされていることが前提です。
また主キーが存在しないテーブルは比較できません。
メニューから「選択2シートの比較」を選択します。
「OK」ボタンを押下します。
相違箇所が着色されます。
使用頻度の高い操作にショートカットキーを対応付けています。
変更や無効化については初期化パラメータの編集を参照ください。
№ | 操作 | ショートカットキー初期値 | 補足 |
---|---|---|---|
1 | データの抽出 - [E]xtract | Ctrl+E | テーブル一覧からの抽出、テーブル名のシートからの抽出両方に対応します。 |
2 | データの反映 - [U]pdate | Ctrl+U | - |
3 | SQL - S[Q]L | Ctrl+Q | - |
4 | 最近閲覧したシート(ver. 12.11) | Ctrl+,(カンマ) | - |
ツールの初期化パラメータの編集方法です。
「dbtalk.xlam」と同一フォルダにある「dbtalk.ini.xlsx」をダブルクリックで開きます。
「dbtalk.ini.xlsx」は非表示になっているので、Excelメニューの「ウインドウ」-「再表示」より表示します。
「一般」シートの内容を必要に応じて編集し、完了後は「dbtalk.ini.xlsx」を保存、Excelを再起動してください。
設定の妥当性チェックは行いません。もし不正な編集が原因でExcelが起動しないなどの場合は「dbtalk.ini.xlsx」を削除後、Excelを起動してください。
№ | 項目 | 初期値 | 説明 | 制約など |
---|---|---|---|---|
1 | IniVersion | 5 | プログラムで使用 | 変更不可 |
2 | TableListInitialCondition | WHERE 1 = 2 | テーブル一覧からの検索条件初期値 | 変更可能。設定任意 |
3 | ExtractCountMax | 10000 | 検索最大件数 | 変更可能。設定必須 |
4 | ConnectionIdleTimeout | 10 | 接続アイドル状態のタイムアウト時間(分) | 変更可能。設定必須 |
5 | ShortCutKey.Connect | (未設定) | ショートカットキー-接続/切り替え | 変更可能(*)。設定任意 |
6 | ShortCutKey.Disconnect | (未設定) | ショートカットキー-切断 | 変更可能(*)。設定任意 |
7 | ShortCutKey.GetTables | (未設定) | ショートカットキー-テーブル一覧の取得 | 変更可能(*)。設定任意 |
8 | ShortCutKey.Extract | ^e | ショートカットキー-データの抽出。初期値Ctrl+E | 変更可能(*)。設定任意 |
9 | ShortCutKey.Reflect | ^u | ショートカットキー-データの反映。初期値Ctrl+U | 変更可能(*)。設定任意 |
10 | ShortCutKey.SQL | ^q | ショートカットキー-SQL入力フォーム。初期値Ctrl+Q | 変更可能(*)。設定任意 |
11 | ShortCutKey.SQLFile | (未設定) | ショートカットキー-SQLファイルの実行 | 変更可能(*)。設定任意 |
12 | ShortCutKey.GenerateSQL | (未設定) | ショートカットキー-SQLの作成 | 変更可能(*)。設定任意 |
13 | ShortCutKey.Diff | (未設定) | ショートカットキー-選択2シートの比較 | 変更可能(*)。設定任意 |
14 | ShortCutKey.SortWorksheets | (未設定) | ショートカットキー-シートの並べ替え | 変更可能(*)。設定任意 |
15 | ShortCutKey.ShowSheetStack | ^,(カンマ) | ショートカットキー-最近閲覧したシート。初期値Ctrl+,(カンマ) | 変更可能(*)。設定任意 |
16 | SQLForm.SQL | プログラムで使用 | 変更不可 | |
17 | SQLForm.Wrap | FALSE | プログラムで使用 | 変更不可 |
18 | SQLForm.EndOfStatement | 0 | プログラムで使用 | 変更不可 |
19 | SQLHistoryCountMax | 1000 |
SQL履歴最大保持数。0は保持しない。 (ver. 12.14) |
変更可能。設定必須 |
№ | キー | コード |
---|---|---|
1 |
一般の可視文字 (アルファベット、数字、記号) |
文字そのもの (アルファベットの大文字小文字は区別される) |
2 | + | {+} |
3 | ^ | {^} |
4 | % | {%} |
5 | BackSpace | {BACKSPACE} または {BS} |
6 | Break | {BREAK} |
7 | CapsLock | {CAPSLOCK} |
8 | Clear | {CLEAR} |
9 | Delete または Del | {DELETE} または {DEL} |
10 | ↓ | {DOWN} |
11 | End | {END} |
12 | Enter (テンキー) | {ENTER} |
13 | Enter | ~ (ティルダ) |
14 | Esc | {ESCAPE} または {ESC} |
15 | Help | {HELP} |
16 | Home | {HOME} |
17 | Ins | {INSERT} |
18 | ← | {LEFT} |
19 | NumLock | {NUMLOCK} |
20 | PageDown | {PGDN} |
21 | PageUp | {PGUP} |
22 | Return | {RETURN} |
23 | → | {RIGHT} |
24 | ScrollLock | {SCROLLLOCK} |
25 | Tab | {TAB} |
26 | ↑ | {UP} |
27 | F1 ~ F15 | {F1} ~ {F15} |
№ | キー | コード |
---|---|---|
1 | Shift | + (正符号) |
2 | Ctrl | ^ (カレット) |
3 | Alt | % (パーセント記号) |
№ | 組み合わせキー | コード |
---|---|---|
1 | Ctrl+D | ^d |
2 | Ctrl+カンマ | ^, |
3 | Shift+Ctrl+右矢印 | +^{RIGHT} |
ショートカットキーCtrl+,(カンマ)で「最近閲覧したシート」フォームを開きます。
Ctrlキーを押したまま,(カンマ).(ピリオド)キー(<>キー)または、 ↑↓キーまたは、リストのクリックでシートを表示し、
Ctrlキーを離すかまたは、リストのダブルクリックでフォームを閉じます。
履歴は直近20が保持され、Excelを終了すると破棄されます。
配布アーカイブに含まれる「dbtalk.xlam」を任意の場所に配置します。
Excelメニューの「ファイル」タブ -「オプション」-「アドイン」-「管理」で「Excel アドイン」を選択 -「設定」ボタンを押下します。
「アドイン」フォームが表示されます。
「参照」ボタンを押下します。
配置した「dbtalk.xlam」を指定します。
「アドイン」フォームの「Dbtalk」のチェックを入れ「OK」ボタンを押下します。
以上でインストールは完了です。
Excelメニューの「ファイル」-「オプション」-「アドイン」-「管理」で「Excel アドイン」を選択 -「設定」ボタンを押下します。
「アドイン」フォームが表示されます。
「Dbtalk」のチェックを外し「OK」ボタンを押下します。
この手順を省略した場合、ツールバーが削除されないのでご注意ください。
ファイルシステムから「dbtalk.xlam」および、同一フォルダにある「dbtalk.ini.xlsx」を削除します。(旧バージョンの場合は「dbtalk.xla」、「dbtalk.ini.xls」)
再度「アドイン」フォームの「Dbtalk」をチェックすると下記メッセージが表示されるので「はい」ボタンを押下します。
以上でアンインストールは完了です。
install.bat oledb C:\MyOracle32 odac
uninstall.bat all C:\MyOracle32
oraserver:1521/oradb
OleDbReturnCharAsWChar=0
このプログラムはフリーウェアですが、著作権はGanryujimaが保有します。
このプログラムを使用したことによって発生したいかなるトラブル、損害についても作者は一切の責任を負いません。
バージョンアップ、バグ対応などにおいても作者は一切の義務を負わないものとします。(バグに関しては、出来る限り対処するつもりです。)
転載および再頒布は自由に行っていただいて構いません。
また、商用利用の制限もありません。
最新版の入手はVector殿よりお願いします。更新依頼直後は反映されていない場合がありますので数日待ってからご確認ください。
https://www.vector.co.jp/soft/winnt/business/se419781.html
dbtalk1307.zip / Version 13.07(2023/6/11) / 342,788bytesbytes
アーカイブ構成は次のとおり。
Oracle、MySQL、DB2、SQLiteにおける動作実績があります。
特定のDBMSに依存しない操作性を目指しているのですが、目標数の製品・バージョン・データ型に関する確認を網羅できているかというと、個人的な環境ではいろいろな面で不自由を感じているのが実情です。
動作を確認できている環境は次のとおり。
Windows 10/11、Excel 2016/2019/2021(いずれも32ビット版)/Microsoft 365(2208- 64ビット版)
バージョン | 公開日 | 改訂内容 |
---|---|---|
13.07 | 2023/6/11 | SQLフォームでの実行時、型不一致のエラーとなる問題を修正。 |
13.06 | 2023/6/4 | Reademe.txtの修正。64ビット版Excelでの動作実績を記載。 |
13.05 | 2022/4/2 |
SQL入力フォームのSQL履歴が255文字にカットされてしまう問題を修正。 オフラインでもSQLの作成ができるように改善。 |
13.04 | 2022/3/4 |
「アドイン」タブが表示されない問題対応。 最近閲覧したシートへの遷移機能SDI対応。 クリップボード転記されない問題の救済措置。 |
13.03 | 2019/12/26 | Excel2016対応。 |
13.02 | 2019/6/12 | 軽微なbug fix。 |
13.01 | 2019/5/26 | シート名が31文字を超えないようにシート名からスキーマ名を除外。 |
13.00 | 2019/3/17 |
提供ファイル形式をOOXML(拡張子xlam)へ変更。 SQL入力フォームに履歴抽出条件欄追加。 |
12.19 | 2018/1/14 |
選択セルを条件として抽出する機能の仕様改善。 接続/切り替えフォームに状態表示を追加。 |
12.18 | 2017/3/18 | シート比較の処理改善。 |
12.17 | 2016/10/16 | 一部メニュー表記変更。 |
12.16 | 2016/8/1 | メニュー初回クリック時にエラーとなる問題を修正。 |
12.15 | 2016/1/20 | 最近閲覧したシートへの遷移機能改善。 |
12.14 | 2015/11/27 | 初期化パラメータにSQL履歴最大保持件数を追加。 |
12.13 | 2015/10/8 | テーブル一覧取得時、任意のスキーマ指定に対応。 |
12.12 | 2015/7/9 | 軽微なbug fix。 |
12.11 | 2015/5/16 |
最近閲覧したシートへの遷移機能追加。 初期化パラメータ編集対応。 |
7.07 | 2007/1/20 | ツール公開。 |