CTRLを押しながら対象をクリックしていって右クリックで整列ですね。
白い□のコントロールがついた選択線で囲われたのがメイン、それに合わせて位置やサイズなどが変更されます。クリックでその主となる対象が移動できます。
これ僕のやり方がまずいんでしょうけどコントロールが増殖しちゃうんですが(笑)
整列作業をしているとなんか増殖しちゃうんですよね、これすごい困ってます。
あと、こういう体裁を整えているときにコントロールをひとくくり、ひとまとめにしたいと思ったりした時に使う「フォーム」、これ大抵あとから使いますよね?
そうすると最前面に来ちゃってあせります(笑)
こういうときは一旦貼りつけたボタンなんかを切り取ってフォーム上に移植手術しないとダメですね。大変めんどいです。
2016年11月26日土曜日
エクセルからIE操作やデータベース操作したいと思うと
htmlやjavascriptの知識が必要になってきますよね。
で、しょうがないなあと面倒だけどまあ基本的なところを見ればいいやと思って見ていたら・・・案外昔勉強していて途中で挫折した知識が残っていてびっくりしました(笑)
やっぱり若い頃の記憶っていうのはよく定着していますね。今この歳でhtmlだなんだって1から勉強していたら本気でギブアップしました僕はそんな根性ない(笑)
javascriptってJAVAに近いんですよね?確か。で、C#とかも見ていて思い出したからこの辺にも繋がるんだろうし復習して無駄はないかなと思ってちょっと楽しい気分になりました。
もちろん家に帰ったらゲームとかしちゃうんですけどね(笑)
で、しょうがないなあと面倒だけどまあ基本的なところを見ればいいやと思って見ていたら・・・案外昔勉強していて途中で挫折した知識が残っていてびっくりしました(笑)
やっぱり若い頃の記憶っていうのはよく定着していますね。今この歳でhtmlだなんだって1から勉強していたら本気でギブアップしました僕はそんな根性ない(笑)
javascriptってJAVAに近いんですよね?確か。で、C#とかも見ていて思い出したからこの辺にも繋がるんだろうし復習して無駄はないかなと思ってちょっと楽しい気分になりました。
もちろん家に帰ったらゲームとかしちゃうんですけどね(笑)
インデックスが有効範囲にありませんエラーがすっかりおなじみ
これがおなじみになっただけでもずいぶんと成長したなと自分を褒めてるんですけどね(笑)
このエラーはVBAやってると本当に頻繁に見ます。
多分中級者より上の人は見ないんじゃないかと思う。でも、僕のような駆け出しの初心者は本気でこれが出まくります(笑)
このエラーが出るっていうのは要は対象がありませんよって意味・・・だと自分では思ってます。違ったとしてもそっとしておいてください(笑)初心者のうちからあまり例外や少ない事例を詰め込んでも嫌になるだけだから漠然とあってれば僕は充分です。
たとえばそのシートをアクティヴにするという命令を出したのに肝心なそのシートが無かったりとかそんなんで起きます。確か、非表示にしててもこれ出たかもしれない。
シートの非表示とか初心者はあまりやらない方がいいです。一気に面倒くさくなるから(笑)
で、今まさにこのエラーが出ているのだけれど・・・・
マクロを動かしているのは別のブックで、それとは別のブックをアクティブにしようとして
workbooks("○○.xlsx").activate
ってやるとここで「インデックスが有効範囲にありません」って出るんですよね。
それで困るのは出ないときは出ないんです、普通にそのまま動いちゃう(笑)
これが本当に困るんですけど・・・。100%動かない、問題の個所を修正したら100%と正常に動作するっていうなら明確なんだけれど、たまに動いて、大事なとこで動かないでってやられると初心者にはどうにもならない。
自分だけが使用するものだったらそれでもいい、というか人に使わせるものを作ろうとすると一気に労力が5倍くらいになりますよね(笑)
自分だったらこんなトラブルが起こったらもうここは手作業でやるからいいんですよ。
でも人、とりわけエクセルの知識がほとんどない人にも使ってもらわなきゃいけないとなると・・・・もう厳しいです。
このエラーはVBAやってると本当に頻繁に見ます。
多分中級者より上の人は見ないんじゃないかと思う。でも、僕のような駆け出しの初心者は本気でこれが出まくります(笑)
このエラーが出るっていうのは要は対象がありませんよって意味・・・だと自分では思ってます。違ったとしてもそっとしておいてください(笑)初心者のうちからあまり例外や少ない事例を詰め込んでも嫌になるだけだから漠然とあってれば僕は充分です。
たとえばそのシートをアクティヴにするという命令を出したのに肝心なそのシートが無かったりとかそんなんで起きます。確か、非表示にしててもこれ出たかもしれない。
シートの非表示とか初心者はあまりやらない方がいいです。一気に面倒くさくなるから(笑)
で、今まさにこのエラーが出ているのだけれど・・・・
マクロを動かしているのは別のブックで、それとは別のブックをアクティブにしようとして
workbooks("○○.xlsx").activate
ってやるとここで「インデックスが有効範囲にありません」って出るんですよね。
それで困るのは出ないときは出ないんです、普通にそのまま動いちゃう(笑)
これが本当に困るんですけど・・・。100%動かない、問題の個所を修正したら100%と正常に動作するっていうなら明確なんだけれど、たまに動いて、大事なとこで動かないでってやられると初心者にはどうにもならない。
自分だけが使用するものだったらそれでもいい、というか人に使わせるものを作ろうとすると一気に労力が5倍くらいになりますよね(笑)
自分だったらこんなトラブルが起こったらもうここは手作業でやるからいいんですよ。
でも人、とりわけエクセルの知識がほとんどない人にも使ってもらわなきゃいけないとなると・・・・もう厳しいです。
2016年11月20日日曜日
エクセルVBAからメールを送れるようにしたい
アプリを作っていて思いついたのだけれど、そもそもが会社にいなくても勝手に起動してタスクを実行してくれるプログラムだから、実際に動いてる時はそばで監視できないんです。既製品だったらちゃんと動くという期待が当然出来るけれど素人同然の自分が作成しているしイマイチ不安だなあと思っていて思いつきました。
メインプログラムの最後にメール送信するサブモジュールをくっつけておけば少なくともそこまでは動作してたという確認が出来るのでこれは良いアイデア!!と思いぐぐったらありました。
エクセルVHAからメール送信のDLL
で、僕の場合GメールでやろうとしてるのでGメールのSMTPサーバ名やポート番号なども調べるとこのページが出てきました。
実はまだ実証してないです。DLL必要という事は各端末にこれ入れてもらわなきゃいけないという事で多分それは難しいかなと思って。だから自分のものだけにカスタマイズして入れようかなと最後の最後にくっつける感じで。
同様に自動実行プログラムが実行中の間に音楽を流すというアイデアもあったのですが、実行するとやけに重くなるのでちょっと保留。もしかすると自宅のPC環境のせいかもしれないし。
メインプログラムの最後にメール送信するサブモジュールをくっつけておけば少なくともそこまでは動作してたという確認が出来るのでこれは良いアイデア!!と思いぐぐったらありました。
エクセルVHAからメール送信のDLL
で、僕の場合GメールでやろうとしてるのでGメールのSMTPサーバ名やポート番号なども調べるとこのページが出てきました。
実はまだ実証してないです。DLL必要という事は各端末にこれ入れてもらわなきゃいけないという事で多分それは難しいかなと思って。だから自分のものだけにカスタマイズして入れようかなと最後の最後にくっつける感じで。
同様に自動実行プログラムが実行中の間に音楽を流すというアイデアもあったのですが、実行するとやけに重くなるのでちょっと保留。もしかすると自宅のPC環境のせいかもしれないし。
2016年11月17日木曜日
エクセルでマクロを組んでもいつもは正常に動かない!?
原因が分かってると対処のしようがあるんですけどね、なにもいじってないのに、コードは同じなのに違う実行結果になるときが一番ストレス溜まるしプログラム書いてて嫌になります。
それでも経験から得た対処の方法を備忘録として残しておくと・・・
とりあえずステップ実行してみる。
該当マクロのところにカーソルを置いてF8で一行ずつ実行していってみる。これが本当に便利でかなりいろいろバグや不具合が取り除けます。
いらない行を削除する、コードの記述を各ステートメントごとにきっちりインデントする。
これは今回痛感しました。if節やfor節の入れ子が上手くいってないとビックリするくらいヘンな動きします(笑)今回はselect caseのいくつかのステートメントが飛び出していたらそこが実行されないでびっくりしました(笑)
なんというかそれぞれのモジュールごとにかなり分かりやすいようにコメントを残してさらには囲っておく。
今回///////////これで囲いながら作ったらあとでかなり見やすいしメンテナンスしやすかったです。
なんでもそうだけどメンテナンス性を高めたいならなるべく可能な限りシンプルにするべきかと思います。あとパーツごとに分ける。
変数や宣言、スコープなど基本的な事をしっかり踏まえて作る。
このサイトをさっき読んでいて、本当にこの辺の事を頭に入れてないと余計な時間とストレスがかかります。僕はブレイクポイントとイミディエイトウィンドウは全然使いこなせていないのだけれどこのへんも上手に使えばさらにストレスなく楽しくプログラミング出来るのかも。
もう本当に、こんなのが作りたい!!→あ、こんな感じにすれば実現できるかな?→コードが閃いて一気に書く。ここまでは本当に楽しいのだけれど、そのあとの不具合を直していくのがどうにもならないくらい苦痛で嫌いです。これがなければ趣味としてちょっとした開いてる時間にやったりして捗るのだけれど。
ひとつつぶす、また動かない、ひとつ潰す、今度は関係ないところが動かないの繰り返し。
まあでもやはり1回作った次の2つ目は自分では気づかないけれど各段にレベルアップしています。そして1度作ったモジュールというかサブルーチン?は自分のライブラリにして何度でも利用できるのでそれはすごい快感(笑)
それでも経験から得た対処の方法を備忘録として残しておくと・・・
とりあえずステップ実行してみる。
該当マクロのところにカーソルを置いてF8で一行ずつ実行していってみる。これが本当に便利でかなりいろいろバグや不具合が取り除けます。
いらない行を削除する、コードの記述を各ステートメントごとにきっちりインデントする。
これは今回痛感しました。if節やfor節の入れ子が上手くいってないとビックリするくらいヘンな動きします(笑)今回はselect caseのいくつかのステートメントが飛び出していたらそこが実行されないでびっくりしました(笑)
なんというかそれぞれのモジュールごとにかなり分かりやすいようにコメントを残してさらには囲っておく。
今回///////////これで囲いながら作ったらあとでかなり見やすいしメンテナンスしやすかったです。
なんでもそうだけどメンテナンス性を高めたいならなるべく可能な限りシンプルにするべきかと思います。あとパーツごとに分ける。
変数や宣言、スコープなど基本的な事をしっかり踏まえて作る。
このサイトをさっき読んでいて、本当にこの辺の事を頭に入れてないと余計な時間とストレスがかかります。僕はブレイクポイントとイミディエイトウィンドウは全然使いこなせていないのだけれどこのへんも上手に使えばさらにストレスなく楽しくプログラミング出来るのかも。
もう本当に、こんなのが作りたい!!→あ、こんな感じにすれば実現できるかな?→コードが閃いて一気に書く。ここまでは本当に楽しいのだけれど、そのあとの不具合を直していくのがどうにもならないくらい苦痛で嫌いです。これがなければ趣味としてちょっとした開いてる時間にやったりして捗るのだけれど。
ひとつつぶす、また動かない、ひとつ潰す、今度は関係ないところが動かないの繰り返し。
まあでもやはり1回作った次の2つ目は自分では気づかないけれど各段にレベルアップしています。そして1度作ったモジュールというかサブルーチン?は自分のライブラリにして何度でも利用できるのでそれはすごい快感(笑)
2016年11月8日火曜日
VBA 行の挿入
Rows.Insert メソッドを使う。
1行挿入するならRows(1).Insert
2行挿入するならRows(2).Insert
3行挿入するならRows(3).Insert
4行挿入するならRows(4).Insert
1行挿入するならRows(1).Insert
2行挿入するならRows(2).Insert
3行挿入するならRows(3).Insert
4行挿入するならRows(4).Insert
VBAをマスターして人生変えたい!!
というかそのくらいの勢いで自分を奮い立たせて頑張らないと家に帰ると本当にやらない(笑)
加えてブログで衆人環視的にやらないと・・・、いやいいわけですけど肉体労働を10時間以上してそこから家でもこういうのって本当にきついんですよ?もう若くないし(笑)
さて、2週間ほど放置したらすっかり忘れてしまった(笑)
もういつもの事だけど・・・。
なんでこういうのって時間開くと綺麗さっぱり忘れちゃうんだろう。
それがわかってるから自分なりに結構細かくコメント残してるんだけど・・・
そのコメントが意味不明(笑)
オブジェクトとかその辺もブログにメモしておこうと思ったのだけどすっかり忘れちゃったよ(笑)
とりあえずHTMLやjavascriptなんかもやらないといけないのだけどこれは必要最低レベルのものを納品するには優先順位下がるから後回し!!
ソースを読んでいて面倒なのいちいち例外処理記述されてるじゃない?まあしていて当然なのだけど、理解しようとしている人間が読むと本当に面倒。
ブロックブロックごとにわけてくっつけたり必要だったらくっつけなかったりしてやっていきたいんだよな。ifよりcaseで条件分岐するのが好き。
forをいりこ10個くらい作ったら修正してる時にどこがどこだかわかんなくなったのは大きな反省点。ちゃんとインデントやんないと本当に分からなくなる。
あとでいろいろ流用できるように個人の標準モジュール集を作ってるのが割と快感(笑)
加えてブログで衆人環視的にやらないと・・・、いやいいわけですけど肉体労働を10時間以上してそこから家でもこういうのって本当にきついんですよ?もう若くないし(笑)
さて、2週間ほど放置したらすっかり忘れてしまった(笑)
もういつもの事だけど・・・。
なんでこういうのって時間開くと綺麗さっぱり忘れちゃうんだろう。
それがわかってるから自分なりに結構細かくコメント残してるんだけど・・・
そのコメントが意味不明(笑)
オブジェクトとかその辺もブログにメモしておこうと思ったのだけどすっかり忘れちゃったよ(笑)
とりあえずHTMLやjavascriptなんかもやらないといけないのだけどこれは必要最低レベルのものを納品するには優先順位下がるから後回し!!
ソースを読んでいて面倒なのいちいち例外処理記述されてるじゃない?まあしていて当然なのだけど、理解しようとしている人間が読むと本当に面倒。
ブロックブロックごとにわけてくっつけたり必要だったらくっつけなかったりしてやっていきたいんだよな。ifよりcaseで条件分岐するのが好き。
forをいりこ10個くらい作ったら修正してる時にどこがどこだかわかんなくなったのは大きな反省点。ちゃんとインデントやんないと本当に分からなくなる。
あとでいろいろ流用できるように個人の標準モジュール集を作ってるのが割と快感(笑)
登録:
投稿 (Atom)