タグ

VBAと開発に関するItisangoのブックマーク (4)

  • VBA応用(MDB(ACCDB)のテーブル定義内容を取得する。)

    テーブルを作ってから「テーブル定義書」を作るようなものです。 来は「データベース設計」なるものがあって、先に「テーブル定義書」を作成して、その「テーブル定義書」に従って実際のテーブルを作成するものです。 ですが、実際の運用場面では「設計」などは担当者の頭の中にあって、操作が簡単なこともあって先にテーブルを作ってしまって運用してしまうこともあるようです。 しかも後から機能拡張を繰り返し、当初の担当者も継続して担当しているとは限らないので、後から設計ドキョメントを見ても実体と合っているか分からない。 なんてことはありませんか? このサンプルは「ダウンロード」の「MDB(ACCDB)生成/テーブル定義取得ツール」を利用しています。 ソースコードを変更することなく利用できるもので、「ダウンロード」の方ではコードの説明を行なっておりませんので、こちらで紹介します。 当初、このページにはADOXを使

  • シート名一覧を取得する

    シート名の一覧を抽出する方法をご紹介します。 ■方法1:名前の定義を使う 「数式」タブ-「名前の定義」をクリック 適当な名前を入力し(例 sName)「参照範囲」に=GET.WORKBOOK(1)と入力して「OK」 シート名を出したいセルに次の数式を入力し、オートフィルする =REPLACE(INDEX(sName,ROW(A1)),1,FIND("]",INDEX(sName,ROW(A1))),"") 補足:get.workbook(1)ではシート名の一覧を取得できます。名前の定義後、=名前を入力すると[ファイル名]シート名が表示されます。 INDEX関数でシート名一覧から○行目…を指定することで1番目のシート、2番目のシート…のように取得できます。○行目はROW(a1)…で指定します。 ■ 方法2:VBA画面に表示(簡単) ALT+F11キーを押す CTRL+Gキーを押して下部に「イ

    シート名一覧を取得する
  • Office TANAKA - 変数の使い方[部屋数を変えられる動的配列]

    配列は、いわば集合住宅のようなものです。1棟の建物に複数の世帯が同時に住むことが可能です。配列を使用するときは、配列の宣言時に部屋数(要素数)を指定します。 では、プログラムの実行中に、要素が増加するような場合はどうでしょう。あるいは、プログラムを作成する時点では、いくつの要素を格納するかわからないときは、どうしたらいいでしょう。そんなケースで役立つのが動的配列という使い方です。 動的配列は、宣言時に要素数を指定しません。 Sub Sample33() Dim Member() As String End Sub 一般的な配列では「Member(5)」などと要素数を指定するところを、「Member()」と括弧だけを指定します。これで、変数Memeberは配列として使用できます。ただし、この宣言時点では要素数が確定していませんので、実際には使えません。そこで、プログラムのコード中で要素数を再

  • Office TANAKA - Excel VBA Tips[ブック・シートが存在するか調べる]

    サイトをご覧になった方からリクエストをいただきました。「特定のブックを開いているか、どうやってチェックしたらいいですか?」と。また、別の方から「'合計'という名前のシートがあるかどうか調べたい」というメールもちょうだいしました。これらは同じ考え方で実現できますので、一緒に解説しましょう。 ブックが開いているか調べる このテクニックは、実は「ファイルの操作」の「現在開いているブックの一覧を取得する」で解説しています。念のため同じコードを再度ご紹介します。 Sub Sample01() Dim wb As Workbook, flag As Boolean For Each wb In Workbooks If wb.Name = "Book1.xlsx" Then flag = True Next wb If flag = True Then MsgBox "Book1 を開いています。",

  • 1