タグ

EXCELとASに関するfukudamasa09のブックマーク (15)

  • Excel VBA 入門講座 Exit

    Do~Loopステートメントを処理途中で抜け次のステートメントに制御を移します。以下の例では変数iの値が10になったときにDo~Loopを抜けます。 Sub ExitDo() Dim i As Integer i = 1 Worksheets("Sheet8").Activate Do Worksheets("Sheet8").Cells(i, 1) = i i = i + 1 If i = 10 Then Exit Do End If Loop End Sub

  • Office TANAKA - Excel VBA Tips[フォルダを選択するダイアログ]

    フォルダを選択するダイアログボックスを表示するにはいくつかの方法があります。 1.FileDialogオブジェクトを使う方法 Sub Sample1() With Application.FileDialog(msoFileDialogFolderPicker) If .Show = True Then MsgBox .SelectedItems(1) End If End With End Sub 2.Shellを使う方法 Sub Sample2() Dim Shell, myPath Set Shell = CreateObject("Shell.Application") Set myPath = Shell.BrowseForFolder(&O0, "フォルダを選んでください", &H1 + &H10, "C:\") If Not myPath Is Nothing Then Ms

  • Fileを選択するオープンダイアログ / Bookを開く / CSV ファイルを開く - アプリケーションとしてのVBA

    ◆Fileを選択するオープンダイアログ / Bookを開く / CSVファイルを開く VBA でアプリケーションを作成する場合、Excel のファイルを選択したり、 CSV ファイルを選択したりすることで汎用性を持たせることができます。 そのときに重要なユーザーインターフェースになるのがオープンダイアログです。 オープンダイアログを表示するには GetOpenFilename を使用します。 実際にファイルを開くわけではなく、ファイル名とパスを取得します。 GetOpenFilename(FileFilter, 省略, Title, 省略, 省略) FileFilter: 選択するファイルを指定する文字列を記述します。 ファイルフィルタ文字列とワイルドカードのペアを カンマで区切って記述します。 Title: オープンダイヤログのタイトルを記述します。 Sub OpenDialog() D

  • VBA応用(CSV形式テキストデータの書き出し)

    メリットはテキスト形式の出力と同じです。 ここでも、古くからのBASICの記述方法と、FSO(FileSystemObject)を操作する方法で、テキストファイルに書き出す方法を解説します。 ワークブックの保存でもCSV形式テキスト(カンマ区切り、*.csv)がありますが、文字列項目をダブルクォーテーションで囲ったり、シートの一部(例えば見出しを除くなど)を出力することはできません。 ここでの方法はいわばExcelの標準と言える出力形式で、FSO(FileSystemObject)の方は個別にレコードを編集するので形式の選択も自在です。 CSV形式テキストファイルは、その形式の「単純さ」からかシステム間のデータ受け渡しに利用されることがよくあります。ですが、一般の利用者は「CSV形式」=「仕様が単一で確立している形式」という誤解があると思います。 現実にこの問題に直面している人もこのページ

  • VBA応用(テキストデータの読み込み)

    デザイン済みのシートにデータを直接読み込むことができます。 ここでは、古くからのBASICのステートメントの記述方法と、FSO(FileSystemObject)を操作する方法で、テキストファイルを読み書きする方法を解説します。 例えば、CSV形式のファイルを直接開くと、見出しもないデータの羅列がワークシートに展開されてしまいますが、ここでのサンプルの方法であればデザインしたワークシートの見出しの下の行からデータを読み込んで表示させたり、ワークシートに表示させないで内部処理を行なうなどのことができます。 なお、これから新しく取り組む方は古いステートメントではなく、最初からFSO(FileSystemObject)を学んで下さい。 まずは、「古くからあるステートメント」の方法です。 通常の文書のようなテキストデータを改行(CRLF)単位に1行ずつ読み込みます。 動作確認をされる場合は、Asc

  • Office TANAKA - Excel VBA Tips[重複しないリストを作る(1)]

    「キー」と「値」がセットになっていて、「神奈川県」というキーで「横浜市」という値を検索できるような仕組みです。Dictionaryオブジェクトでは、こうした連想配列にデータ(キーと値のセット)を追加したり、検索したり、任意のキーがすでに存在しているかどうかを調べことなどができます。なお、連想配列では同じキーを登録できません。 Dictionaryオブジェクトを使って重複しないリストを作成するには、次のように考えます。 セルA2からセルA8まで順にデータを取得します 取得したデータが連想配列に登録されていなかったら登録します 取得したデータが連想配列に登録されていたら何もしません 流れはこんな感じです。さて登録するデータですが、連想配列では「キー」と「値」の二つが必要です。今回のケースでは「名前」データしかありません。「名前」を「キー」にするとして、「値」には何を登録したらいいのでしょう。

  • Office TANAKA - Excel VBA(エラーに負けない)

    マクロ開発者にとってエラーは嫌なものです。できればエラーメッセージは見たくありませんし、対処のしかたに慣れていないと、エラーの原因を解明するために思わぬ時間が必要だったりもします。もちろんエラーは発生させないのが一番ですが、そうも言っていられません。ここでは、エラーを回避するテクニックをご紹介します。 エラーを無視する たとえば次のコードは、ワークシート名を取得して表示します。 Sub Sample1() Dim i As Long, buf As String For i = 1 To 4 buf = buf & Worksheets(i).Name & vbCrLf Next i MsgBox buf End Sub しかし、For Nextの繰り返しを4回実行しているため、ワークシートが3枚以下だとエラーになります。 For Nextのループ中でエラーが発生してマクロはストップします

  • VBA応用(セルの入力規則を操作する。)

    入力規則もマクロから設定・解除など操作できます。 場合によってセルをロックしたり、ロック解除したりするような場合で、ロック解除した時には入力規則を使ってリスト選択させるような仕組みが必要な時、入力規則のリストを固定で設定してしまうと、ロックしている時にキー入力はできないのにリスト選択ができてしまう不具合に遭遇します。運用上「不具合」ですがExcel上では仕様であって、そのままでは直りません。 このような時は、セルをロック/ロック解除するタイミングで入力規則のリストの設定も追加/削除してやるしかないようです。 (画像をクリックすると、このサンプルがダウンロードできます) このサンプルでは、B1セル(行1列2)で「保護」「非保護」を変更すると、連動してB2セル(行2列2)、B4セル(行4列2)のセルをロック、ロック解除します。ちなみに「保護」「非保護」を変更して、Tabキーを押していってもらえ

  • VBA基礎文法最速マスター - いろいろ解析日記

    VBAの文法一覧です。他の言語をある程度知っている人はこれを読めばVBAの基礎をマスターしてVBAを書くことができるようになっています。簡易リファレンスとしても利用できると思いますので、これは足りないと思うものがあれば教えてください。 1. 基礎 Visual Basic Editorの起動 VBAはVisual Basic Editorで編集・実行します。Visual Basic Editorは次のように起動します。 ExcelやWordのメニューで[ツール]-[マクロ]-[Visual Basic Editor]を選択する 標準モジュールの追加 VBAは標準モジュールに記述します。標準モジュールは次のように追加します。 Visual Basic Editorのメニューで[挿入]-[標準モジュール]を選択する。 変数宣言の強制 変数宣言を強制するため、モジュールの先頭に必ず以下の行を書く

    VBA基礎文法最速マスター - いろいろ解析日記
  • オブジェクトとコレクション

    VBA では特定のワークシートやセルを対象に情報を取得したり操作を行ったりします。このような VBA の対象となるものをオブジェクトと呼びます。また同じ種類のオブジェクトをまとめたものをコレクションと呼びます。例えばブックに含まれるすべてのワークシートをまとめてワークシートコレクションとして扱うことができます。ここでは Excel VBA におけるオブジェクトとワークシートについて解説します。

    オブジェクトとコレクション
  • Google 検索の「サジェスト機能」を, Excel のシート上にVBAで作る (セルの内容に応じて入力規則を動的に変える方法) - 主に言語とシステム開発に関して

    バッチ・マクロのTOPへ 「山」と入力したとき,「山」で始まる入力候補だけをドロップダウンで表示させたい 「入力規則」の使いづらさ マクロで作ってみる (1)辞書となるシートを用意 (2)入力規則を動的に切り替えるコード (3)シートを開いた時に処理を自動的に始めるコード (4)使い方 補足 補足2 「山」と入力したとき,「山」で始まる入力候補だけをドロップダウンで表示させたい Googleの検索窓には,検索候補のサジェスト機能がある。 1文字「山」と入力したら,「山田」「山川」などの候補をドロップダウンで表示。 同じく「石」と入力したら,「石田」「石川」などの候補をドロップダウンで表示。 最初の一文字だけ入力すればよい。 楽だし,ミスタイプもない。 これと同じことを,Excelでも実現してみる。 ↑上:セルの入力内容にサジェストするようなドロップダウンを表示 (「石」で始まる関係ない候補

    Google 検索の「サジェスト機能」を, Excel のシート上にVBAで作る (セルの内容に応じて入力規則を動的に変える方法) - 主に言語とシステム開発に関して
  • VB 配列 - Array, Redim, 動的配列など

    Visual Basic 中学校 > 初級講座 > 第27回 配列 配列は昔からある技術です。新鮮さがないためにまったく注目されませんが、昔から今まで生き延びているということ自体がその重要性を証明しています。今回は地味な説明になりますがじっくりと読んで配列の概要を把握することは有意義です。次回取りあげるコレクションの理解にもつながります。 この回の要約 ・配列を使うと似たような変数をまとめることができる。 ・配列は Dim MyArray(3) As String のように宣言する。 ・配列は添字を変数にしてループをまわせる。 ・配列をコピーするにはCloneメソッドを使う。 ・動的配列を作成すると、Redim Preserveを使うことにより後からサイズを変更できる。 1.はじめに 配列に関する説明をする前に少し今回の方針を書いておきます。 私は普段初級講座を書くに当たっては「VBに

  • Functionプロシージャ

    プロシージャには Sub プロシージャだけではなく Function と言うプロシージャが用意されています。 Function プロシージャの大きな特徴は呼び出し元に値を戻す事ができることです。その為、あたかも関数のように動作しますのでユーザー定義関数とも言います。ここでは Excel VBA で Function プロシージャの使い方について解説します。

    Functionプロシージャ
  • Excel全開VBA

    Findメソッドは最初に検索されたデータを返してきますが、データがいつも単一でしか存在しないということはありませんから、複数のデータを検索して、その処理をしたいときが出てきます。 そんなときに覚えておきたいのが、FindNextメソッドを使った検索です。前回のFindメソッドのファイルをもとに複数検索も出来るようにコードを書き換えていきましょう。 シート上のテキストボックスやコマンドボタンはそのままで、今回はコードだけを修正します。 テキストボックスには、「txtkenskau」という名前で コンボボックスには、「cmbkensaku」という名前のままです。 コードは赤字の部分が修正されたり追加された部分になります。 Private Sub cmdkensaku_Click() Dim 検索氏名 As Variant Dim firstAddress As Variant 'まず検索用テキ

  • 日経PC21 / エクセル - 勝手に設定される「ハイパーリンク」を解除したい!

    最新号日経PC21 2024年11月号 発売日:2024年9月24日 特別定価:950円(紙版、税込み) 【特集】 ヘタリを防ぐ! 駆動時間を延ばす! 2倍に延ばせ!バッテリー寿命 【特集】 複雑怪奇なアプリの謎を解明! インストール&削除の落とし穴 【特集】 驚きのネットサービスが続々 最新AIがすごすぎる 【特集】 高コスパ製品からあこがれの高級品まで イチ推し 気になる デジタル機器 ≫サンプルファイルのダウンロード

  • 1