配列を使うのに役立つ4つの関数――Array、LBound、UBound、Splitの使い方:VBA/マクロ便利Tips 業務効率化に役立つVBA/マクロのさまざまなTipsをコード例を交えて紹介していきます。今回は、配列を返すArray、配列のインデックス番号の最小値/最大値を返すLBound/UBound、要素ごとに区切られた文字列から配列を作るSplitなどの使い方について解説。
MsgBoxで、どんなときに括弧を使うのかと、メッセージを改行する"改行コード"について、詳しい解説を動画で公開しています。ぜひ、こちらもご覧ください。Youtubeでは、ほかにもたくさんの動画を公開しています。チャンネル登録をお忘れなく! Office TANAKAチャンネル ■VBAのコードで、括弧はどんなときに使うのか 構文 引数promptは必ず指定します、ダイアログボックスに表示するメッセージを指定します。 引数buttonは省略可能です。ダイアログボックスに表示する、ボタンの種類やタイプなどを指定します。 引数titleは省略可能です。ダイアログボックスのタイトルバーに表示する文字列を指定します。 引数helpfileは省略可能です。ダイアログボックスの[ヘルプ]ボタンから開くヘルプファイルを指定します。引数helpfileを指定する場合は、引数contextも必ず指定しなけれ
配列って使ってますか? 配列は同じ型のデータを大量に扱う場合に一つのかたまりとして扱うことができるので便利ですよね。 この記事では、配列について 固定長配列と可変長配列 配列では同じデータ型の変数をたくさん扱う場合に、一つのかたまりとして扱うことができます。 配列内のひとつひとつのデータを要素といいます。それぞれの要素にはインデックス番号(添字)を指定することでアクセスすることができます。 配列を宣言する際に、要素数と次元数が決まっている配列を固定長配列といいます。 これに対して、要素数と次元数が決まっていない配列を可変長配列や動的配列といいます。 配列の宣言と定義 それでは配列を宣言、定義する方法についてみていきましょう。 固定長配列と可変長配列で宣言の方法が少々異なります。 固定長配列の場合 まずは、固定長配列を宣言、定義する方法について説明します。 固定長変数は配列名のあとに「()」
配列は、いわば集合住宅のようなものです。1棟の建物に複数の世帯が同時に住むことが可能です。配列を使用するときは、配列の宣言時に部屋数(要素数)を指定します。 では、プログラムの実行中に、要素が増加するような場合はどうでしょう。あるいは、プログラムを作成する時点では、いくつの要素を格納するかわからないときは、どうしたらいいでしょう。そんなケースで役立つのが動的配列という使い方です。 動的配列は、宣言時に要素数を指定しません。 Sub Sample33() Dim Member() As String End Sub 一般的な配列では「Member(5)」などと要素数を指定するところを、「Member()」と括弧だけを指定します。これで、変数Memeberは配列として使用できます。ただし、この宣言時点では要素数が確定していませんので、実際には使えません。そこで、プログラムのコード中で要素数を再
VBAにもクラスのコンストラクタとデストラクタがあるらしく、利用方法をまとめた。 コンストラクタ Public Sub Class_Initialize() 'ここに処理を書く End Sub デストラクタ Public Sub Class_Terminate() 'ここに処理を書く End Sub ただし、引数を設定することが出来ず、宣言と同時に初期化を行った場合にはClass_Initializeが走らないという謎の挙動をしてる TestClass Public Sub Class_Initialize() debug.print "コンストラクタが動いたよ!" End Sub Public Sub Class_Terminate() debug.print "デストラクタが動いたよ!" End Sub Test1プロシージャ Public Sub Test1() Dim testA
ExcelのVLOOKUP(ブイ・ルックアップ)関数は、表を縦方向に検索し、特定のデータに対応する値を取り出す機能を持ちます。業務の効率化に役立つ関数として人気がありますが、引数の指定方法が複雑という難しさもあります。使い方をあらためて確認しましょう。 ビジネスに必須のVLOOKUP関数 ExcelのVLOOKUP(ブイ・ルックアップ)関数は、表を縦方向に検索し、特定のデータに対応する値を取り出す機能を持つ関数です。商品IDから商品の単価を取得したり、顧客名から住所を取得したりなど、業務でよく行う処理を効率的に行えるため、ビジネスに必須の関数として知られています。 代表的な利用例を見てみましょう。以下の表ではVLOOKUP関数を使い、セルA3で指定した商品IDに対応する商品名と単価を「商品マスタ」の表から取り出しています。 VLOOKUP関数の利用例 セルB3/C3にVLOOKUP関数が入
宣言する方法 Collectionオブジェクトは以下のように宣言します。 Dim コレクション名 As Collection Set コレクション名 = New Collection また、以下のように宣言することもできます。 Dim コレクション名 As New Collection Addで初期化、追加する方法 Collectionオブジェクトを初期化、または要素を追加するにはAddメソッドを使用します。Addメソッドの第1引数に項目、第2引数にキー、第3引数、第4引数にはインデックス番号を指定します。 第3引数で指定したインデックス番号の前に要素を追加することになります。第4引数で指定したインデックス番号の後に要素を追加することになります。 第2引数以降は省略可能です。キーの指定を省略した場合はインデックス番号を使って項目を参照することになります。 それではサンプルコードで確認してい
Accessを使う以上は避けて通れないNullについてです。 「値がない」というごく当たり前のことに過ぎないのですが、Accessでは取り扱いが複雑なものとなりますので常にその存在を意識する必要があります。Access(正確に言うとデータベースと呼ばれるソフト)を扱う場合の宿命といえますが、仕方がありませんので早めに慣れるようにしましょう。 Nullとは スペースとの違い 空文字列(長さ0の文字列)との違い Nullの性質 まとめ Nullとは テーブルを作成して入力を進めていく中で、さまざまな値が記録されていきますが、そのうち何も入力されない部分が生じることがあります。この画像の例では2行目の「右視力」列の値と3行目の「体重」列の値がありません。 このように値が存在しない状態のことをNull(ヌル)と呼びます。妙な名前ですがその正体は単純で、ただ値がないというだけのことです。 このような
概要 この資料では、Microsoft Access で、値がない状態を示す 2 つの状態について、説明します。 詳細 フィールドに値がないもの (空白値) には、データが未入力のものや、Enter キーを押しただけの入力、半角および全角スペースが入力されているものなどがありますが、Access では、空白値を「Null 値」と「長さ 0 の文字列 (空文字列)」という 2 種類に識別しています。 これらは Access 上で区別される場合と、区別されない場合があります。 例 : テーブルの値をコピー後貼り付けた場合 コピー元の値に関わらず、後述のテーブルにあらかじめ設定された動作に従い、空白値を挿入します。 Where 句などで、空白値を取り出す場合 "Is Null" および "Not Like "*"" は、フィールドに値がないもの (空白値) を抽出する時に使用する条件式です。 "
まえがき朝、目が覚めると、元エクストリームVBA-er であらせられる@igeta氏が ウワアァァ!! https://t.co/TQQwEfuqN5 — いげ太 (@igeta) 2015, 3月 9とんでもないものをTwitterのタイムラインに投下されていました。 1990年代前半から時が止まってしまったかのようなVBAの開発環境 VBE(Visual Basic Editor)に、現代の統合開発環境(IDE)並の機能を追加するクレイジーなアドインが登場したようです。 現代に舞い降りたまさに狂気の権化、その名もRubberduck。 さあ、キミたち、ラバーダックのレポを書くんだ! — いげ太 (@igeta) 2015, 3月 10とのことなので、簡単にレポートを書いてみたいと思います。 レポートインストールは至極単純です。RubberduckのgithubリポジトリのRelaseペ
背景 最初は、Javaの開発要因として入ったけど、諸々の事情により全然Javaと関係ない現場に。。。 同然、開発メンバはJava開発要因として雇ったのは知っているので、無茶ぶりはない。 そして、ドキュメントばかり読んでいるわけにもいかないので、ちょっとしたツールの改修を依頼され、VBAを使う羽目に。。。 VBA VBAの経験 無いわけではない。 日本だから、仕様書はMS OfficeのExcel使うことが多い。 業務効率化のためにVBAでちょっとしたものを書くことは、たまにする。 ソースを見て愕然。。。 う~ん。。。。 ツールだからなのだろうか? もの凄く昔に見たようなコードがいっぱい。。。 気になったこと 変数が大文字始まり メンバ変数が多用されている バッファリングする意味は? 構造体はリストに入れられない?! 末尾に「;」が不要 変数が大文字始まり 自分は、個人で開発していた時は、J
Imports Microsoft.VisualBasic Imports System.Collections.Generic Imports System.Text Imports System.Runtime.InteropServices Imports System.Runtime.CompilerServices Public Class Form1 Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click Dim str As String str = JPReverseConv.Main(“東京最高京都最高山口最高愛媛最高香川最高”) End Sub Class JPReverseConv <ComImport> <Guid(“019F7152-E6DB-11D0-83
Last Updated 2011/09/21 私は C# でテキストエディタコントロールを作る計画を持っていますが、その過程で IME について研究してみました。日本語環境において、IME "Input Method Editor" は無視できない存在だからです。しかし、.Net Framework の IME に関係する機能はほぼゼロに等しいといってよい状況ですので、必然的に Windows の機能を直接呼び出すことになります。 このページでは、IME に関係する Windows API 関数および COM インターフェースの使い方を中心として解説します。なお、このページで紹介するサンプルコードは C# だけですが、Visual Basic な人にも参考になると思います。 Microsoft IME 2003 Windows Vista に搭載されている IME エンジンは Micro
概要 Microsoft Visual Basic で New 演算子または CreateObject 関数を使用して Microsoft Office アプリケーションのインスタンスを作成すると、次のエラー メッセージが表示されることがあります。 このエラーは、コンポーネント オブジェクト モデル (COM) が要求された Automation オブジェクトを作成できず、Automation オブジェクトが Visual Basic では使用できない場合に発生します。 このエラーは、すべてのコンピューターで発生するわけではありません。 この記事では、このエラーの原因となる可能性がある一般的な問題を診断して解決する方法について説明します。 詳細情報 Visual Basic では、エラー 429 の原因がいくつかあります。 エラーは、次のいずれかの条件に該当する場合に発生します。 アプリケ
Windows8 Release Preview上でIFELanguageを利用する場合の注意点は・・・ CLSID={019f7150-e6db-11d0-83c3-00c04fddb82e}を直接指定してCOMオブジェクトを生成せず、MSIME.Japan、もしくはMSIME.Japan.FELangを利用する。憶測ではあるが、名称から「MSIME.Japan.FELang」を利用するべきだと考える。 ■ 背景 色々あって調べていると、WhiteBrowserはCLSID={019f7150-~}を直接指定しており、COMオブジェクトの生成に失敗しているにも拘わらず、そのまま処理を続けているためメモリ破壊~ランタイムエラーとなっている事が解った。 ■ 調査結果 色々なパターンでWindows7 / Windows8 上でCOMオブジェクトを生成してみると、非互換部分が存在する事が判明し
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く