Excel VBAで、あるフォルダー下のExcelファイル群について、順番にファイルを開いて値を取得する、という処理を書いていました。
そんな中、以下の箇所で、エラー1004が発生。
Workbooks.Open [ファイル名]
何度繰り返しても同じです。
調べてみると、マイクロソフトのサポートに情報がありました。
Excel で、プログラムを介してワークシートをコピーすると「実行時エラー 1004 」が発生する
定期的に保存しなさい、とのことです。
なので、上記処理の前に以下を追加。
Application.ActiveWorkbook.Save
ですが、改善されません。
VBAでのファイル読込エラーの対応方法
On Errorでエラー処理する、と書いていますが、それはとっくにやっています。どうやら、通常にはエラーハンドリングされないケースのようです。
同じように、1000以上のファイルを開く、という処理は別のプログラムでやったことがあり、そのときには何の問題もなく動作しましたので、理由が思い当たりません。
何度も試して諦めかけていましたが、上記リンク先にある以下の一文を念のため追加して実行。
Application.ScreenUpdating = False
。。。上手く行きました!!!
うーん、よく分かりませんが、Excel VBA(特にExcel固有のWorkbookとか)はいろいろと誤動作がまだあるようで、おまじないが必要な状況のようです。
2016年2月18日木曜日
2016年2月11日木曜日
SIMフリーiPhonse5sをiOS9.2.1にアップグレードした結果
iOS9へのアップグレードが可能になってから半年近く経とうとしていますが、今までアップデートを放置してきました。動かなくなったら嫌なのと、いろいろと忙しかったからでしょうか。
という訳で、週の半ばの休日ということもあり、アップデートを敢行。いつの間にか、9.2.1まで進んでいるようです(ということで、アップデートで気づいた点は、9.0、9.1、9.2のいずれから含まれるようになったかは定かではありません)。
いつも通り、OSアップデートには自宅の無線LAN環境で15分程で完了。接続についても、WiFi、LTE共に問題なし。
以下、いくつか気づいた点です。
1. Siriの画面がナイトライダーみたいになっている
Siriを起動すると、待ち受け画面(というか音声認識状態)が横棒になっていました。話すと、音声認識状況が周波数表示みたいな感じで表示されます。なんか、ナイトライダーみたい。
2. ホームボタンをダブルクリックするとメニュー表示が左⇒右ではなく、右⇒左になっている
この変更は結構戸惑いました。ホームボタンをダブルクリックすると起動中のアプリが選択できた(できる)のですが、
・従来は、ホーム画面が一番左だったのが、ホーム画面が一番右になっている
・起動中アプリが並列に表示されたのが、 カードが重なるみたいに順番に表示されている
という感じに変わっています。何なんでしょうね、この変更は。
3. ホーム画面から更に左にスワイプすると、新たな画面が表示される
これも結構煩雑です。間違って操作して表示してしまうのですが、その度にiTunesへのサインアップを求められます。いちいちこれをキャンセルするのが面倒。最初の5回くらいはこの状態が続きました。今は、このサインアップは表示されなくなっています。
よく使うアプリとか、ニュースとかが表示されるようですが、何の画面かはよく分かりません。
4.「Find Friends」と「Find iPhone」のアプリ追加
今回は2つのアプリが追加されていました。
「Find Friends」は、登録すると、同じくアプリに登録した友達の居場所が分かる、というものらしい。自分の居場所を常に知られるのは好きではないので、当然登録しませんでした。
「Find iPhone」は失くしたときの検索用?これも良くわからないので保留。
お約束ですが、言語設定変更時のスピードをチェック。やはり、遅いままのようです。以前よりも多く時間がかかるようになったのは気のせいかな。
とりあえず、気になったところは以上です。
という訳で、週の半ばの休日ということもあり、アップデートを敢行。いつの間にか、9.2.1まで進んでいるようです(ということで、アップデートで気づいた点は、9.0、9.1、9.2のいずれから含まれるようになったかは定かではありません)。
いつも通り、OSアップデートには自宅の無線LAN環境で15分程で完了。接続についても、WiFi、LTE共に問題なし。
以下、いくつか気づいた点です。
1. Siriの画面がナイトライダーみたいになっている
Siriを起動すると、待ち受け画面(というか音声認識状態)が横棒になっていました。話すと、音声認識状況が周波数表示みたいな感じで表示されます。なんか、ナイトライダーみたい。
2. ホームボタンをダブルクリックするとメニュー表示が左⇒右ではなく、右⇒左になっている
この変更は結構戸惑いました。ホームボタンをダブルクリックすると起動中のアプリが選択できた(できる)のですが、
・従来は、ホーム画面が一番左だったのが、ホーム画面が一番右になっている
・起動中アプリが並列に表示されたのが、 カードが重なるみたいに順番に表示されている
という感じに変わっています。何なんでしょうね、この変更は。
3. ホーム画面から更に左にスワイプすると、新たな画面が表示される
これも結構煩雑です。間違って操作して表示してしまうのですが、その度にiTunesへのサインアップを求められます。いちいちこれをキャンセルするのが面倒。最初の5回くらいはこの状態が続きました。今は、このサインアップは表示されなくなっています。
よく使うアプリとか、ニュースとかが表示されるようですが、何の画面かはよく分かりません。
4.「Find Friends」と「Find iPhone」のアプリ追加
今回は2つのアプリが追加されていました。
「Find Friends」は、登録すると、同じくアプリに登録した友達の居場所が分かる、というものらしい。自分の居場所を常に知られるのは好きではないので、当然登録しませんでした。
「Find iPhone」は失くしたときの検索用?これも良くわからないので保留。
お約束ですが、言語設定変更時のスピードをチェック。やはり、遅いままのようです。以前よりも多く時間がかかるようになったのは気のせいかな。
とりあえず、気になったところは以上です。
2016年1月26日火曜日
Excelで非表示のシートを表示する
とある、他人が作ったマクロ入りのExcelを修正する作業が舞い込んで来ました。
1つだけシートがあり、そのシート上のボタンを押すと、必要な処理をしてくれる、そんなファイルです。
で、マクロの編集メニューからVBA編集画面に飛んで見てみました。ボタンを押した際の実行関数はモジュールにまとまっていたので、こちらを拝見。
で、ソースコードを読んでいくと、「いろんなシート」をリフレッシュして、最新データを取りこんでいるようです。
いろんなシート???
先に書いたように、ファイルには1シートしかありません。他のシートはどうやって隠されているのか。何かパスワードロックがかかっているのではないか。。。
と疑いましたが、以下の手順で簡単にハッキング成功。
見せたくないシートを非表示にしたい
あまりに簡単な方法でしたが、すっかり騙されたので、備忘のため描いておきます。
1つだけシートがあり、そのシート上のボタンを押すと、必要な処理をしてくれる、そんなファイルです。
で、マクロの編集メニューからVBA編集画面に飛んで見てみました。ボタンを押した際の実行関数はモジュールにまとまっていたので、こちらを拝見。
で、ソースコードを読んでいくと、「いろんなシート」をリフレッシュして、最新データを取りこんでいるようです。
いろんなシート???
先に書いたように、ファイルには1シートしかありません。他のシートはどうやって隠されているのか。何かパスワードロックがかかっているのではないか。。。
と疑いましたが、以下の手順で簡単にハッキング成功。
見せたくないシートを非表示にしたい
あまりに簡単な方法でしたが、すっかり騙されたので、備忘のため描いておきます。
2016年1月22日金曜日
NFCの規格
AndroidでNFC通信によりデバイスからデータを読取ることをしていました。
で、結構、
1つは、読取り位置というか、機種によりスウィートポイントが異なるようです。これは何となく理解できます。もう1つは、機器により通信できない、というもの。そんなものかな、と思いつつ、気にはしていなかったのですが、自分のやっているケースで見事に発生。
FelicaだとOKだけど、RFIDだと駄目、みたいな。
そんなこんなで、規格自体を調べてみることに。
【国際標準規格】NFCの規格と採用例
NFCについてのまとめ
NFCの定義
要するに、NFCと一口にいっても、IP-1(ISO/IEC 18092)とIP-2(ISO/IEC 21481)という種類があるようです。Felicaとは、デバイス的にはどちらでも通信できるが、RFIDとは、IP-2でないとデバイスレベルですら通信できない。
あと、Felicaのみ対応のNFC、なんてのもあるようで、『NFC』という言葉だけでは、どのISO規格に対応しているのか、分からない状況です。
近距離無線通信
NFC phones: The definitive list
いくつかの製品情報で検索してみたのですが、メーカーのページにも、『NFC対応』とだけ記載しているだけで、IP-1(ISO/IEC 18092)なのかIP-2(ISO/IEC 21481)なのか、はたまたFelica(ISO/IEC 18092)だけなのか、記載はないようでした。
まあ、日本のスマートフォンは、Felica対応(のみ)から始まっているようですが、徐々に、少なくともIP-1(ISO/IEC 18092)、続いてIP-2(ISO/IEC 21481)対応の方向に向かっているような気がします。あくまでも希望的観測ですが。
ちなみに、iPhone6/6sの「NFC」はMIFARE(ISO/IEC 14443)である模様。
で、結構、
機種同士により、相性があるという話をよく耳にしました。
1つは、読取り位置というか、機種によりスウィートポイントが異なるようです。これは何となく理解できます。もう1つは、機器により通信できない、というもの。そんなものかな、と思いつつ、気にはしていなかったのですが、自分のやっているケースで見事に発生。
FelicaだとOKだけど、RFIDだと駄目、みたいな。
そんなこんなで、規格自体を調べてみることに。
【国際標準規格】NFCの規格と採用例
NFCについてのまとめ
NFCの定義
要するに、NFCと一口にいっても、IP-1(ISO/IEC 18092)とIP-2(ISO/IEC 21481)という種類があるようです。Felicaとは、デバイス的にはどちらでも通信できるが、RFIDとは、IP-2でないとデバイスレベルですら通信できない。
あと、Felicaのみ対応のNFC、なんてのもあるようで、『NFC』という言葉だけでは、どのISO規格に対応しているのか、分からない状況です。
近距離無線通信
NFC phones: The definitive list
いくつかの製品情報で検索してみたのですが、メーカーのページにも、『NFC対応』とだけ記載しているだけで、IP-1(ISO/IEC 18092)なのかIP-2(ISO/IEC 21481)なのか、はたまたFelica(ISO/IEC 18092)だけなのか、記載はないようでした。
まあ、日本のスマートフォンは、Felica対応(のみ)から始まっているようですが、徐々に、少なくともIP-1(ISO/IEC 18092)、続いてIP-2(ISO/IEC 21481)対応の方向に向かっているような気がします。あくまでも希望的観測ですが。
ちなみに、iPhone6/6sの「NFC」はMIFARE(ISO/IEC 14443)である模様。
2016年1月2日土曜日
Excel VBAで行の挿入に失敗する
年が明けました。
とはいっても、残念ながら、昨年し残した仕事がなくなった訳ではありません。
という訳で、正月早々から、プログラミングをしています。
今回はExcel VBA。Excelの資料を自動作成する、というのに取り組んでいます。
これまで、Excel VBAは結構使ってきましたが、どちらかというとデータ処理結果を残すのにExcelという表形式が適していただけで、主にVisual Basic同様の感覚で使っていました。相違点といえば、WorksheetとCellsを指定するくらい。
ただ、今回は、Excelファイルを雛形からコピーして、セル書式を定義し、データ量に応じて表の行数を制御する、といった、Excel寄りの内容で、正直、あまり経験はありません。
ということで、いつもの如く、先達たちの知見をGoogle先生から学びます。
ファイルコピーとかは難なく正常に動作。が、行の追加で
Application.ActiveWorkbook.Sheets("Sheet1")..Rows.Insert
とすると、1004エラーが発生してしまいました。
エラーメッセージを読んでも訳が分からないため、以下のそれぞれの記事を参照。
エクセルのVBAでの行の挿入について
エクセル VBA で「実行時エラー '1004': Range クラスの Select メソッドが失敗しました。」
Office TANAKA - Excel VBAの実行時エラー
Error message: To prevent possible loss of data, Microsoft Excel cannot shift nonblank cells off the worksheetRuntime error 1004 when inserting rows via VBA
上記を読んでいて分かったのは、1004エラーにはいろいろな種類があるということ、行の追加を行う際にはいろいろと内部的な処理があるということでしょうか。
・行挿入前にファイルを保存する
・xlDownを指定する
等、試みたのですが、いずれも成功せず。
正月早々、これは縁起が悪い、と、ちょっと諦め気味だったのですが、初歩の初歩に戻って1つの実験をしました。それは
『マクロを記録してみて、どんなコードが生成されるか確認する』
です。 これを試してみたところ、こんな感じでコードが生成されることを確認。
Rows("8:8").Select
Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
で、結局、これに倣って修正するとうまく動きました。
一応、今年の初仕事(初内職)は無事完了。
とはいっても、残念ながら、昨年し残した仕事がなくなった訳ではありません。
という訳で、正月早々から、プログラミングをしています。
今回はExcel VBA。Excelの資料を自動作成する、というのに取り組んでいます。
これまで、Excel VBAは結構使ってきましたが、どちらかというとデータ処理結果を残すのにExcelという表形式が適していただけで、主にVisual Basic同様の感覚で使っていました。相違点といえば、WorksheetとCellsを指定するくらい。
ただ、今回は、Excelファイルを雛形からコピーして、セル書式を定義し、データ量に応じて表の行数を制御する、といった、Excel寄りの内容で、正直、あまり経験はありません。
ということで、いつもの如く、先達たちの知見をGoogle先生から学びます。
ファイルコピーとかは難なく正常に動作。が、行の追加で
Application.ActiveWorkbook.Sheets("Sheet1")..Rows.Insert
とすると、1004エラーが発生してしまいました。
エラーメッセージを読んでも訳が分からないため、以下のそれぞれの記事を参照。
エクセルのVBAでの行の挿入について
エクセル VBA で「実行時エラー '1004': Range クラスの Select メソッドが失敗しました。」
Office TANAKA - Excel VBAの実行時エラー
Error message: To prevent possible loss of data, Microsoft Excel cannot shift nonblank cells off the worksheetRuntime error 1004 when inserting rows via VBA
上記を読んでいて分かったのは、1004エラーにはいろいろな種類があるということ、行の追加を行う際にはいろいろと内部的な処理があるということでしょうか。
・行挿入前にファイルを保存する
・xlDownを指定する
等、試みたのですが、いずれも成功せず。
正月早々、これは縁起が悪い、と、ちょっと諦め気味だったのですが、初歩の初歩に戻って1つの実験をしました。それは
『マクロを記録してみて、どんなコードが生成されるか確認する』
です。 これを試してみたところ、こんな感じでコードが生成されることを確認。
Rows("8:8").Select
Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
で、結局、これに倣って修正するとうまく動きました。
一応、今年の初仕事(初内職)は無事完了。
2015年12月21日月曜日
UbuntuでIllustratorの代用を探す
年賀状の季節です。
今までは、WindowsでAdobe Illustratorを使って年賀状を作ってきましたが、Ubuntuではどうでしょうか。
Illustrator for LinuxでGoogle検索すると、いくつかのサイトが見つかりました。
6 great alternatives to Adobe Illustrator
Adobe Illustrator alternatives for Linux
Adobe Illustrator Ubuntu Equivalent?
.AI拡張子のものが使えるのか不明ですが、lnkscapeとか評判良さそうです。
今年は時間が なかったので、WindowsでAdobe Illustrator(評価版)で流してしまいましたが、来年以降に備えて、年末年始にでも試してみようと思います。
今までは、WindowsでAdobe Illustratorを使って年賀状を作ってきましたが、Ubuntuではどうでしょうか。
Illustrator for LinuxでGoogle検索すると、いくつかのサイトが見つかりました。
6 great alternatives to Adobe Illustrator
Adobe Illustrator alternatives for Linux
Adobe Illustrator Ubuntu Equivalent?
.AI拡張子のものが使えるのか不明ですが、lnkscapeとか評判良さそうです。
今年は時間が なかったので、WindowsでAdobe Illustrator(評価版)で流してしまいましたが、来年以降に備えて、年末年始にでも試してみようと思います。
2015年12月14日月曜日
4GB以上のファイルがUSBにコピーできない
今日はWindows ServerのISOファイルをダウンロード。
無事ダウンロード完了して、DVDを焼き付ける別のPCにUSB経由でコピーしようとしました。
「ファイルが大きすぎます」
何故だ。USBメモリーは、こうした事態に備えてちゃんと32GBのものを購入したはず。
空き容量を見ても余裕だし、別の1.5GBのファイルは正常にコピーできました。
何だかなー、と思いながら、いつものGoogle先生。
USBメモリに空き容量があるのにファイルコピーできない時の解決法
そうなんです。FAT32フォーマットだったんです。
バッファローのUSBで、デフォルトでなんかフォルダーとかファイルがあったりするので、NTFSにするのをすっかり忘れていました。
NTFSにフォーマットし直して無事OK。
初歩的な話ですが、忘れそうなので、とりあえずメモ。
無事ダウンロード完了して、DVDを焼き付ける別のPCにUSB経由でコピーしようとしました。
「ファイルが大きすぎます」
何故だ。USBメモリーは、こうした事態に備えてちゃんと32GBのものを購入したはず。
空き容量を見ても余裕だし、別の1.5GBのファイルは正常にコピーできました。
何だかなー、と思いながら、いつものGoogle先生。
USBメモリに空き容量があるのにファイルコピーできない時の解決法
そうなんです。FAT32フォーマットだったんです。
バッファローのUSBで、デフォルトでなんかフォルダーとかファイルがあったりするので、NTFSにするのをすっかり忘れていました。
NTFSにフォーマットし直して無事OK。
初歩的な話ですが、忘れそうなので、とりあえずメモ。
登録:
投稿 (Atom)