リンク 窓の杜 ダウンロードしたVBAマクロは既定でブロックへ ~「Microsoft Office」攻撃への対策を強化/警告のメッセージバーは赤色へ変更、ボタンだけでは有効化不能に 米Microsoftは2月7日(現地時間)、インターネットから入手したVBA(Visual Basic for Applications)マクロを既定でブロックする方針を明らかにした。「Microsoft Office」を狙う攻撃からユーザーを保護するためであるという。 26 users 71 リンク 窓の杜 Microsoft、ダウンロードしたVBAマクロを既定でブロックする方針を一時撤回か/「Microsoft 365 管理センター」で最新チャネルのロールバックを通知 米Microsoftは7月7日(現地時間)、ダウンロードしたVBAマクロを既定でブロックする変更をロールバックし、「Microsoft O
English 久しぶりにExcelでゲームを再現してみました。 ツイッターでどんなゲームを作るのが良いか募集したところ、なんと1位がドラクエ。 初めて質問箱を使ってみます。なかなか決められなくて‥‥。 VBAを使わないExcelゲーム、どれを作るのが良さそうですか? — パパセンセイ@Excelを眺める人 (@10mikiya) September 21, 2020 正直どう作って良いか見当もつかないまま見切り発車で進めましたが、なんとか形になったので公開の流れになりました。最適化されてないロジックもありますので温かい目で見守っていただけますと幸いです。 一応、再度伝えておきますがVBAは一切使っていません。 [ad01] どんなものが出来たか 実際にどんなものになったか、見ていただいた方が早いのでまずは結果をご覧ください。(※音声はありません) あのイルカ 最後まで見た方が面白いですよ
データベースとして使いたい表なのに、結合セルだらけで使い物にならない。 そんなときに、VBAで作ったマクロを起動するだけで、 結合セルを解除して 元々入っていた値を、結合されていたすべてのセルに入力する マクロを紹介します。 ソースコードを貼り付けて実行するだけなので、1分もかからずに、表を整形できます。 ソースコード 下記を、標準モジュールに貼り付けて実行してください。 Sub UnmergeCellsAndFillValues() Dim rng As Range For Each rng In ActiveSheet.UsedRange If rng.MergeCells Then With rng.MergeArea .UnMerge .Value = .Resize(1, 1).Value End With End If Next End Sub 解説 For Eachループ F
■ エクセルVBA超入門 ・9ステップで"Hello World!" からオブジェクト指向まで! 1. "Hello World!"を表示しよう 2. 基本はデータの入出力 3. 繰り返し処理 4. シートで簡易データベース 5. 名前をつけよう 6. 構造化プログラムに挑戦 7. 構造体を使ってみよう 8. フォームを使ってみよう 9. オブジェクト指向に挑戦 ■ エクセルVBA中級編 ・VBAでいろんなテクニック 変数・関数のスコープ 引数の参照方法を明示 配列の中身を一気に複写 識別子がよいコードを作る データ定義型をもっと知ろう 定数と列挙型を活用しよう エラー処理の重要性1 エラー処理の重要性2 いろいろな条件分岐 いろいろな繰り返し処理 演算子について知ろう 文字列操作 連結 変換 置換 文字列操作 検索 比較 書式 日付操作関数を知ろう 数値操作・評価・その他関数 並び替えソ
VBAではコンストラクターに引数を渡すことができないので、一旦オブジェクトを作ってから値をセットするという二度手間が発生する。 今回はその手間を省くべく、引数をもとにオブジェクトを自己複製するメソッドを作ってみた。 まずクラスモジュールを挿入し、オブジェクト名をPersonに変えておく。 そして、以下のコードを貼り付け。 Public Name As String, BirthDay As Date Property Get Age() As Long Age = DateDiff("yyyy", BirthDay, Date) End Property Property Get Self() As Object Set Self = Me End Property Function CreateNew(name_, birthday_) As Person With New Person
VBAには標準モジュールのほかに、クラスモジュールというものがある。 クラスモジュールについて調べようと思っても日本の書籍ではあまりきちんと解説されておらず、主にネットから情報を得ることになる。 使い方についてはまだ情報が存在するのだが、「使いどころ」については実際に活用している方が少ないせいか、ほとんど紹介しているサイトを見かけない。 今回は比較的身近に活用されているであろうExcelで作られた一覧表を題材に、クラスモジュールの使いどころを紹介したい。 ※使い方が分からないという方はこちらをご参照ください。 thom.hateblo.jp さて、今回は適当なデータが無かったので「なんちゃって個人情報」を使用して説明する。 これほんと便利。 このような一覧表のそれぞれの行をレコードと呼ぶ。 今回利用するなんちゃって個人情報では、ひとつのレコードは、ひとりの人物を表す。 このひとりひとりの人
こんにちは! ra-men-tarouです! 突然ですが、VBAってみなさんどう思いますか? 今時でない、書きづらい、メンテしづらい、失われた遺産、死ねばいいと思う、などなど... いろいろ不満はあると思いますが、現場の規模が大きかったりするとそれだけセキュリティリスクは 上がるもの。規制も厳しくなるものです。 VBAのメリットはおそらくそんな環境下でもだいたいofficeはみんなの 環境に入っているから環境準備に手間取らないとかそんなところでしょう。 みんな大好きエクセルさんのフォーマットは僕も否定はしません。(セル結合とか出てくると厄介ですが...) さて、今回はVBAからpowershellコマンドを実行する際について紹介したいと思います。 はじめに 前回の記事でpowershellでhtdigestを作成する方法について紹介しました。 anosonote.hatenablog.co
[Excel VBA]フォルダーの選択画面を開くには? マクロの実行中、ユーザーにフォルダーを選択させるには、“フォルダーの選択”ダイアログボックスを使うと便利です。方法はいくつかありますが、FileDialogオブジェクトを使う方法が簡単です。引数には、表の定数を指定できます。 2016.02.05 [Excel VBA]ステータスバーに文字を表示するには? 画面の一番下にあるステータスバーには、任意の文字列を表示できます。表示する文字列は、ApplicationオブジェクトのStatusBarプロパティに設定します。 2016.02.05 [Excel VBA]MsgBoxを自動的に閉じるには? VBAのMsgBox関数は、ユーザーがボタンを押すまで表示され続けます。指定した時間が経過した後に自動的に閉じるMsgBoxを表示するには、Windows Scripting Host(WSH
画面の一番下にあるステータスバーには、任意の文字列を表示できます。表示する文字列は、ApplicationオブジェクトのStatusBarプロパティに設定します。 下のサンプルコードでは、変数iが1から1000まで変化する様子を、ステータスバーに表示します。このように処理の経過がわかるようにすると、処理の途中でも「フリーズしているのでは?」と心配になることがないでしょう。 なお、ステータスバーの表示をExcelの標準に戻すには、StatusBarプロパティにFalseを指定します。
概要 「VBA 高速化」で検索すると恐らく「配列化」みたいなキーワードが高確率で引っかかるんじゃないかと思います。 確かに有効な手段なのですが、VBA触り始めだとこの概念が掴めなかったりしませんか? (私の思考の問題かも知れないですが…。) 今回はその辺りを私なりに噛み砕いて綴っていきます。 本編 サンプルシート こんなシートがあったとします。 Rangeで範囲取得 ワークシートから任意のセル範囲を取得する時は、Rangeプロパティを使うよ。 Dim myRange as Range Set myRange = ActiveSheet.Range( "A1:C3" ) ' または Set myRange = ActiveSheet.Range( "A1", "C3" )
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く