Excel VBAでデータベースのテーブルのストレージ使用量を表示する方法

この記事では、Excel VBAを使用してデータベースの特定のテーブルのストレージ使用量を取得し、Excelに表示する手法について詳しく解説します。具体的なVBAのコード例やその詳細な解説、さらには応用例を3つ以上ご紹介いたします。初心者から上級者まで、実際の業務での活用に役立つ情報を提供します。

目次

Excel VBAの基本

Excel VBA(Visual Basic for Applications)は、Microsoft Excelに組み込まれたプログラミング言語です。これを用いると、単純作業の自動化だけでなく、高度なデータ分析やレポート作成も可能になります。

そもそも、どこにVBAコードを書いて、どう実行すれば良いのか分からない場合は、以下の記事をご参照ください。

基本的な手法

データベースのストレージ使用量の取得は、多くのデータベースシステムでSQLを利用して可能です。このセクションでは、Excel VBAからSQLを利用してデータベースの情報を取得し、それをExcelのシートに表示する基本的な手法を紹介します。


Sub ShowTableStorageUsage()
    Dim Connection As Object
    Dim Recordset As Object
    Dim SQL As String

    ' ODBCでデータベースへの接続
    Set Connection = CreateObject("ADODB.Connection")
    Connection.Open "DSN=Your_DSN_Name;UID=Your_UserID;PWD=Your_Password"

    ' SQLクエリの定義 (例: MySQLの情報スキーマからテーブルの情報を取得)
    SQL = "SELECT table_name, data_length + index_length AS storage_size FROM information_schema.TABLES WHERE table_schema = 'Your_Database_Name';"
    
    Set Recordset = Connection.Execute(SQL)

    ' Excelに結果を表示
    ThisWorkbook.Worksheets("Sheet1").Range("A1").CopyFromRecordset Recordset

    ' オブジェクトの解放
    Recordset.Close
    Set Recordset = Nothing
    Connection.Close
    Set Connection = Nothing
End Sub

コードの詳細解説

1. `ADODB.Connection`オブジェクトを使って、データベースに接続します。
2. SQLクエリを定義して、データベースのテーブルのストレージ使用量を取得します。
3. 結果をExcelのシートに表示します。

応用例

応用例1: 複数のデータベースから情報を取得

複数のデータベースに接続して、それぞれのテーブルのストレージ使用量を取得する方法です。


Sub ShowMultipleDBStorageUsage()
    ' 省略...
    Dim DatabaseNames As Variant
    DatabaseNames = Array("DB1", "DB2", "DB3")
    For i = LBound(DatabaseNames) To UBound(DatabaseNames)
        SQL = "SELECT table_name, data_length + index_length AS storage_size FROM information_schema.TABLES WHERE table_schema = '" & DatabaseNames(i) & "';"
        ' 省略...
    Next i
End Sub

応用例2: 使用量が一定値を超えるテーブルのみを表示

特定の容量を超えるテーブルのみをExcelに表示する方法です。


Sub ShowLargeTableStorageUsage()
    ' 省略...
    SQL = "SELECT table_name, data_length + index_length AS storage_size FROM information_schema.TABLES WHERE table_schema = 'Your_Database_Name' AND (data_length + index_length) > 1000000;"
    ' 省略...
End Sub

応用例3: テーブルの使用量をグラフで表示

取得したテーブルのストレージ使用量をExcelのグラフ機能を利用してグラフで表示する方法です。


Sub ShowTableStorageUsageGraph()
    ' 省略: 上記と同じ方法で情報を取得

    ' グラフの作成
    Dim Chart As Object
    Set Chart = ThisWorkbook.Worksheets("Sheet1").Shapes.AddChart2(251, xlColumnClustered).Chart
    Chart.SetSourceData Source:=ThisWorkbook.Worksheets("Sheet1").Range("A1:B10")
End Sub

まとめ

Excel VBAを利用して、データベースのテーブルのストレージ使用量を取得し、それをExcelに表示する方法について学びました。基本的な手法から応用例まで、様々なケースでの活用方法を理解することで、日々の業務効率を大きく向上させることができます。

VBAも良いけどパワークエリも良い

VBAの解説をしてきましたが、VBAは正直煩雑でメンテナンス性が悪いです。最近はモダンExcelと呼ばれるパワークエリやパワーピボットへのシフトが進んできています。本サイトでもパワークエリの特集をしており、サンプルデータを含む全11回の学習コンテンツでパワークエリを習得することができます。

クリックするとパワークエリの全11講座が表示されます。

パワーピボットの記事はありません。興味がある場合は、書籍で学んでみてください

コメント

コメントする

目次