2019-01-01から1年間の記事一覧

Timerクラス

最近の働き方改革で夜遅くまでオフィスで仕事をしない人は関係ない話なので、この記事は読まなくても大丈夫です。 経過時間をざっくり計算するために一番簡単な方法はVBAのTimer関数です。たいていの人がこんな感じで済ませていると思いますが、これだと対応…

メモ:Windows10でDLNAメディアサーバーを立ててみる

DLNAメディアサーバー PS4にメディアプレーヤーをインストールすると、Nasneにあるファイルを再生できるのはいいんですが、Windows10のファイルは再生できません。単純にメディアサーバーを動かせばいいわけで、今回はそのやり方を解説します。 DLNA (Digita…

Boolean表記とIIF関数

IF-ELSE文で次のようなコードを書くときに5行も使うの嫌ですよね。 Dim fFlag As Boolean If buff = "EP9 sucks" Then fFlag = True Else fFlag = False End If IIF関数なら1行で書けます。 fFlag = IIf(buff = "EP9 sucks", True, False) でも、ステート…

メモ:条件付き書式ダイアログのバグ

条件付き書式ダイアログで書式ルールを6個以上でクリックできなくなる、適用先が消えてしまうバグが発生します。 1.6個の書式ルールが定義されたダイアログ 2.6個目を表示しようとしてスクロールすると・・・・ 一番下の適用先が表示されていません。 …

メモ:Windows10のクラウドクリップボード

マイクロソフトは知らないうちにこんなものを実装したようです。クラウドコンピューティングの定義が云々というのはこの際置いておきます。ただ、必要ない人にとってリソースを浪費するだけの機能なので、オフにしてすっきりしましょう。エクセルでコメント…

日本国民として知っておくべきこと:国民祝日

まずは技術的な話 Windows10のカレンダーアプリには、OutlookとGmailの国民祝日があります。普通に考えてOutlookのAPIで簡単に取れるだろうと思って、いろいろ調べてみたんですが、サンプル通りにやってもうまくいきません。 休日一覧をウェブから取ってくれ…

いまさらRangeオブジェクト: Value、Text、メンバー指定なし

RangeオブジェクトのディフォルトのプロパティはValueです。Textではありません。この2つのプロパティの違いはちゃんと理解しておいた方がよいです。 Dim xCell As Excel.Range Set xCell = Sheet1.Range("A1") xCell = Now xCell.NumberFormatLocal = "[$-…

メモ: Windows10からNasneにファイルコピーができなくなった件

SONYのNasneは自前のsambaを持っているので、Windowsからファイルサーバーとして使うことができて便利だったのですが、Windows10になってファイルコピーできなくなってしまいました。 スタートメニュー▶設定 設定の検索に「有効化」と入力 「Windows の機能…

自宅PCのエクセルを外出先のスマホで見たい

1.ペイントにシート内容を張り付けてjpgファイルでGoogleドライブに保存する。 ALT+Print Screenしてもいいですが、コピーしたいセル範囲をエクセルでコピーしてペイントに張り付けると、画面イメージでペイストできます。ペイントでクリッピングする手間…

セキュリティに影響を及ぼす可能性のある問題点が検知されました。

自分が開発しているVBAなのにこんな警告が出たことがありませんか? 警告が出たことがないXLMSファイルにも関わらず、そのファイルのコピーを作って、開いたときに警告が出たことはありませんか? 『マクロを有効にする』を毎回クリックするくらいどうという…

エクセルを2重起動させたい

1時間に1回タイマーでワークブック①のVBAマクロを実行させるようにしておいて、別のワークブック②でVBAの開発をしたいというケースでは、②のVBAをデバッグしている間は①のVBAは動作することができません。つまり、ひとつのエクセルのプロセスでは、VBAはシン…

条件付き書式で表示が変わったセルの背景色をVBAでチェックするには

条件付き書式で背景色が変更されている行に対して、任意の背景色を持つセルの列だけを表示したかったので次のようなコードを書いてみたんですが、.Interior.Colorの値が16777215(=vbWhite )になってしまい、今更こんなことでつまづくのかと苦笑してしまいま…

株価スクレイピング

VBAで株価スクレイピングしようかと思ったんですが、検索すると圧倒的にPythonがヒットするので、どれだけ高速なのか調査も兼ねてPythonの開発環境を整備して、ある程度動作できるところまでやってみました。 ただ、もう面倒くさい。インタープリターベース…

SpecialCellsで落とし穴にハマってみた

シートの一番下のセルを一発で教えてくれるSpecialCells(xlCellTypeLastCell)は便利なのでたまに使いますが、例えば次のようなシートで実行すると14を返します。当然ですよね。 ? Sheet1.Range("A1").SpecialCells(xlCellTypeLastCell).Row では、同じシート…

いまさらテキストファイルの読み書き

テキストファイルにデータを書き出したい、または読み込みたい。ああ、なんだっけLine Inputだっけなんだっけ? FreeFileいるよな。調べるの面倒くせー というわけで仕方なくクラスを書くことにしました。コピペで済ませたい人は、このクラスをコピーしてく…

メモ: このブックには安全ではない可能性のある外部ソースへのリンク...

エクセルでファイルを開いた時に「このブックには、安全ではない可能性のある外部ソースへのリンクが1つ以上含まれています」という警告が出ることがあります。 RSS(リアルタイムスプレッドシート)や他のファイルへの参照リンクなどいろいろな原因があると…

エクセルからメール送信

エクセルからメール送信するにはどうしたらよいでしょうか。Outlookライブラリを使えば、簡単にできます。サンプルでは、ワークシートの内容を送っていますが、ワードドキュメントを添付したり、応用範囲はいろいろ考えられると思います。 参照設定: Micros…

Youtubeから動画ファイルをダウンロードしてスマホの着信音にする

エクセルとは関係ありません。ただの個人的なメモです。 1.動画ファイルのダウンロード https://www.thxyoutube.com/watch/で動画URLをペーストSTARTボタンをクリック解像度ごとのボタンが出てくるので、好きなボタンをクリックDOWNLOAD (右クリックでリン…

Webクエリのダウンロード時間がかかるようになった

Webクエリを使い続けていると、3秒程度だったダウンロード時間が1分以上になることがあります。あちこちのサイトを検索してもはっきりした原因はどこにも書いてありませんが、やっと原因を特定できたので情報公開することにします。おそらくこれがファイナル…

VBAの高速化

画面の更新をオフにする .Selectionはダメ絶対 セル自動計算オフは禁止 イベントをオフにする ステータスバーの更新頻度を下げる ループの中でのDoEvents Webクエリが遅くなる問題 Webクエリはテーブル指定で それは言われなくても知ってます編 画面の更新を…

クリップボードとのインターフェース

エクセルの中で .Copyで内部的なクリップボードに入れて、.PasteSpecialするのは簡単です。では、エクセルではなく別アプリで使えるようにクリップボードに入れるにはどうしたらいいでしょうか。セルの内容を.Copyすれば別アプリでもアクセスできるので問題…

Collection vs Dictionary

Collectionオブジェクトは安直にデータをぶっこんで、あとでグルグル回すのに便利です。たぶん、みなさんも使ったことがあると思います。 コレクションにはオブジェクトを格納することもできるので次のようにRangeオブジェクトを入れることができます。For E…

エクセルの昔のメニューを復活させるには

下線時代はよかったWindows 3.1の頃の話ですが、メニューやダイアログボックスのすべてのコントロールには下線付きのアルファベットが付いていました。私達はそれを見て、マイクロソフトのシステムはすべての操作をキーボードでできるようにGUIを設計してい…

セルからマクロ関数を呼び出す

オートフィルターを使って、表示されているデータに対して合計、平均、個数、最大、最小といった集計を行いたい場合は、SUBTOTAL関数の独擅場です。え? SUMじゃダメなの?という人に簡単に説明すると、SUMは非表示のデータも合計しますが、SUBTOTALは非表示…

HTMLファイルをダウンロード

HTMLファイルをダウンロードして何をしたいのかは人それぞれですが、私がやっているのは株価をダウンロードしてMySQLに落とし込むとか、適宜開示情報や格付け情報の監視などでしょうか。 HTMLファイルをダウンロードするには大きく2つの方法があります。1…

For Each xCell In Selectionの落とし穴

エクセルでマクロの書き方が分からない場合は、マクロ記録でコードを生成させて参考にするのが一番簡単です。ところが、そのコードはそのままでは使えない代物だということが分かってますか? 今回は、Selectionの落とし穴について書いてみたいと思います。 …