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
ワークシートの最終セル(最終行、最終列)を取得する… VBAをはじめた人は誰しも最初に引っかかる問題ではありますが、幸いにもインターネットで検索するといくつもの解決法が見つかります。 ところが…動いたり動かなかったり、想定外の動作をすることがあります。そもそもいくつもの解決法があること自体おかしい、いったい本当の答えはどれ?この際、白黒はっきりさせようじゃないかというのがこのページの趣旨です。 <S1> ワークシートの最大行、最大列を取得する MaxRow = Rows.Count MaxCol = Columns.Count まず基本からですが、ワークシートの最大行、最大列を取得するコードです。もちろんこれ自体は最終行、最終列を取得するものではありません。 Rowsはワークシートの行全体をあらわすオブジェクトで、Columnsは列全体をあらわすオブジェクトです。そのメソッドCountは数
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
私は勘違いをしていました。いえ、確かな根拠を調べずに「できないに違いない」と思いこんでいたのかもしれません。 今までずっと、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 を開いています。",
業務効率化に役立つVBA/マクロのさまざまなTipsをコード例を交えて紹介していきます。今回は、文字列の変換が行えるStrConvメソッドを使い、ひらがなをカタカナに変換するマクロや半角英語を全角英語に変換するマクロの作り方を解説。 今回は、文字の変換に関するTipsを紹介しよう。「ひらがな」を「カタカナ」に変換する必要性は、日常の業務においても出てくると思う。例えば、最初は「氏名」の読みを「カタカナ」で会員登録をしていたが、途中で「ひらがな」登録に変更したい場合などは、このマクロを使えば一括で変換できる。 また今回は、「半角」文字を「全角」文字に変換する方法も紹介する。メインフレーム時代の古いデータでは「半角カタカナ」が使われていたので、いまだにそのデータを扱わなければならず、「全角カタカナ」に変換したい場合もあるだろう。もしくは、データ入力時に間違って「半角数字」で入力するべきところを
Tips「Excelのセル内にある漢字のふりがなを一括表示&編集」でSetPhoneticメソッドを使い、漢字のふりがなを表示した。その際に、「山田歩」の読みに「ヤマダ フ」とふりがなが振られているのを、「ヤマダ アユム」というふりがなに編集する方法も紹介したが、日本語の文字は、文字1つに対して複数の読み方が存在するものがほとんどだ。これを選択できるようにした方が、より業務で役立つだろう。 それには、今回のTipsをフォーム上で利用して、「読み」の分からない文字のふりがなを、全て表示させて、そこから選択させるといった方法が考えられる。また、前回記事に「他のセルにふりがなを表示させたい」というような感想があったので、その方法も併せて紹介する。 セル内にある漢字のふりがなを全て取得する 例えば、図1のような「生」と入力されたデータがあったとしよう。
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く