Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article?

リストボックスで複数の項目を選択可能にするには、リストボックスのMultiSelectプロパティを設定します。標準では「fmMultiSelectSingle」が設定されています。 fmMultiSelectSingle fmMultiSelectMulti fmMultiSelectExtended 標準のfmMultiSelectSingleは、単一選択です。fmMultiSelectMultiまたはfmMultiSelectExtendedを設定すると、複数の項目を選択可能になります。両者は複数の項目を選択する方法が異なります。 【fmMultiSelectMulti】 項目をクリックすると選択できます 別の項目を選択するときもクリックだけです CtrlキーやShiftキーは必要ありません すでに選択している項目を再度クリックすると 選択状態が解除されます 【fmMultiSelec
これは基本的なテクニックだと思って今まで解説しませんでしたが、セミナーなどで質問が多かったので、簡単に書いておきます。たとえば、下図のようなリストがあったとします。 この、現在入力されている最終セル(あるいは最終行)を取得するには、どうしたらいいでしょう。 Excelに詳しくない、VBAのプログラミング的なことしか知らないような方でしたら、次のように考えるかもしれませんね。「A列を上から順番に見ていって、空欄セルが見つかったら、その直前が最終セル」だと。その方法でやってみましょうか。 Sub Sample1() Dim i As Long, r As Long For i = 1 To 10000 Range("A" & i).Select If Selection = "" Then r = i - 1 Exit For End If Next i Range("A" & r).Sele
Add2メソッドについて(2019年1月 追記) 2018年10月18日にExcel 2016は機能拡張されて、バージョン1810(ビルド 11001.20074)になりました。このとき実装された機能拡張のひとつに、"新しいデータ型"があります。追加されたのは「株式型」と「地理型」です。両者の型に関しては、下記Microsoftのページをご覧ください。 Excel データ型: 株価と地理 この「株式型」と「地理型」の追加に伴って、セルの並べ替えで条件を指定するSortFieldsコレクションに、新しくAdd2メソッドが追加されました。ちなみに、いままではAddメソッドでした。両者の働きに大きな違いはありませんが、Add2メソッドは、新しい「株式型」と「地理型」のサブフィールドを並べ替えることが可能です。Add2メソッドをヘルプで調べると、次のように記載されています。 この API には、地
引数varnameにユーザー定義型を指定することはできません。 サンプル 次の例は、バリアント型変数の内部処理形式を表示します。 Sub Sample() Dim var As Variant var = "ABC" MsgBox VarType(var) '8を表示します var = 123 MsgBox VarType(var) '2を表示します var = 123.456 MsgBox VarType(var) '5を表示します var = Array("A", "B", "C") MsgBox VarType(var) '8204を表示します End Sub
VBA でシステムを作ったとき、機能をメニューから選択できると便利ですね。独自のメニューをメニューバーに登録する方法をご紹介しましょう。 Sub AddMenu() Dim NewM As Variant, NewC As Variant ''新しいメニューを追加する Set NewM = Application.CommandBars("Worksheet Menu Bar").Controls.Add(Type:=msoControlPopup) NewM.Caption = "新しいメニュー(&C)" ''オリジナルコマンドを追加する(1) Set NewC = NewM.Controls.Add With NewC .Caption = "保護解除(&U)" .OnAction = "UnProtectSheet" .BeginGroup = False .FaceId = 277
概要 Microsoft Visual Basic で New 演算子または CreateObject 関数を使用して Microsoft Office アプリケーションのインスタンスを作成すると、次のエラー メッセージが表示されることがあります。 このエラーは、コンポーネント オブジェクト モデル (COM) が要求された Automation オブジェクトを作成できず、Automation オブジェクトが Visual Basic では使用できない場合に発生します。 このエラーは、すべてのコンピューターで発生するわけではありません。 この記事では、このエラーの原因となる可能性がある一般的な問題を診断して解決する方法について説明します。 詳細情報 Visual Basic では、エラー 429 の原因がいくつかあります。 エラーは、次のいずれかの条件に該当する場合に発生します。 アプリケ
私は勘違いをしていました。いえ、確かな根拠を調べずに「できないに違いない」と思いこんでいたのかもしれません。 今までずっと、VBAから.NET Frameworkを使うことはできないと思っていたのですが、実はできたんですね。知りませんでした。 たとえば、.NET Frameworkには「System.Collections名前空間のArrayListクラス」というクラスがあります。 ArrayListクラスに関する詳細は、MSDNの下記ページをご覧ください。 ■ArrayList クラス (System.Collections) このArrayListクラスを使って、配列を操作してみましょう。次のコードは、.NET FrameworkのArrayListクラスを利用して、ランダムな数値を配列に格納します。さらに、配列のソートや複製の作成、配列の逆順などを行います。 Sub Sample1(
サイトをご覧になった方からリクエストをいただきました。「特定のブックを開いているか、どうやってチェックしたらいいですか?」と。また、別の方から「'合計'という名前のシートがあるかどうか調べたい」というメールもちょうだいしました。これらは同じ考え方で実現できますので、一緒に解説しましょう。 ブックが開いているか調べる このテクニックは、実は「ファイルの操作」の「現在開いているブックの一覧を取得する」で解説しています。念のため同じコードを再度ご紹介します。 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 を開いています。",
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く