2014年7月8日火曜日

Google script ID番号を配列を利用して一発入力 差込印刷

importRange で他からデータ引っ張ってきて、filter で加工し日付のvalue()データでしぼるとか使うとかいろいろ作っているのですが、 ID管理番号をつけたいとか思った場合に、いちいちめんどうだなと思い、こういうものがあったら便利かもと作ってみました。  
Excelのvbaに比べて、google app script は便利な命令が多い気がする。 
最後の行はgetLastRow() だけで取得できるってすごくない?

↓コードはしばらくすると表示されます。
  これはよくない例です! 行番号を取得するgetRow() というのは excel には getRowsになるのね…
ま、開いたら自動的に入力されているというのとかも便利そうだが、自分でメニューにしとくという書き方を忘れないようにこれで書いてみた。

その後、本当に自動的にID振りたくなったときに、ものすごくこの方法だと時間がかかることがわかり、調べたらこの記事を見つける。

でも、意味がわからず、こんな自作関数で便利にしよう的な記事が中級として紹介されていて(これ難しいやん!)って度肝を抜き不安になる。(情緒不安定)
もしかして配列なんてことが難しいだろうか…と、そんなことないよね
で、初めてここで質問してみた!頑張った! 親切なこの人が教えてくれました!

本書く人は違うね!ベルギーブリュッセルにお住まいよ。 本を買いました。思わず… ちなみに、下で普通に配列に入れることになるようだ。
今回は使わなかったけど…。
var idrangeVal = idrange.getValues() 
たったこれだけやん!
もう、本当に悩んでいたことがバカとしか言いようがない!
getRamge("A2:A"+(lastrow-1)
とか、何を勘違いしたのか書いたのがおかしかったらしい…。

最初に書いたのなんか…我ながら間抜けとした言いようがないよな。
これを応用して… 式の代入とか…。 

num.push(["=if(ISERROR(Value(left(D"+i+",len(D"+i+")-3))), ,Value(left(D"+i+",len(D"+i+")-3)))"]);

とかやたら長い式を上から下まで一気に入れるとかできる! すばらしい!

逆引き様の処理を早くする方法という記事←難しくてわかんない。
いつも思うのですが、賢い皆様が作ってくれる実例は実際に使えなくものが多いような…。
もっとシンプルな例に徹して欲しいのですが…あ~もう。本当にバカがムリしてやってるなって実感しています。

アマゾンじゃないところで本を買ってみました。おまけがいっぱいついててよかったです。

でも、getlastRow()で得られる最終行番号は、シート全体の最終行になるので、コラムを指定して最終行をゲット出来る方法も知りたいと思ったら、同じこと考えている人がいてわかりました。
最後の方のサンプルをどういう風に実際に組み込むのかわからないが、とりあえず、列のデータを全部読み込んで、それをで .filter(string)で取得し、.length で数えたらその列の数がわかるらしい。そうか! スプレッドシートに =COUNTA( ) って書いたらいいことなのに、その関数はスクリプトにはないんかい! 微妙に面倒くさい。 あ、getRange('A:A').getlastRow()でいいじゃん!いや、それだと物理的な行番号になる(データがなくても数える)みたいで…、あ不思議~。やっぱりフィルタかけるしかないみたい。

//filterやUNIQUE関数で自動生成したデータに名前付き範囲を設定する↓



なんか、PHPもVBAもgoogl App Script(GAS←ガスってちょっと浮かびにくいですが…)、どれも必要に迫られてにわか勉強なんで、ホンマにひとつ書くのも…。

ちょろちょろ!って書いたらすぐ動く!みたいになりたい…。ま、無理だな。
常に調べながらじゃないと無理だな。
SORT()とか自動でできるようにしたいと思うけど、なんか、シート上に入力は命令A:A true とかできるのにGASになると、コラム番号で指定することになる。また複数設定もちょっと複雑。ちなみに下がわざわざ16列と17列の並べ替えを書いてみた

これで正しいかどうかはわからないのだが、これでできたからそれでいい!

さて、加工したデータをAccessでレポートにするのは芸がないなと探したら、Google Docの便利な差込印刷のアドオンがありました。DocumentMerge by PandaDoc Accessいらないじゃん!(ハイテンションを表現する東京弁) 

すごいぞGoogle。
廃盤となったようです。script で書くかな~
←ちょっと遅いけど… 後、ヘッダー要素には入れられないので注意。




今、無料時代に取得した50名まで無料のgoogle appsを使って運用しながら作っているのですが…w
年間1人6000円で50名分というたら 30万円相当のお品が無料ですよ!お客さん大喜びみたいな。
実はいろいろ無料時代に勉強したたのが財産だったなと思うのであったw.

でも、やっぱりうまいことできてまして、50名のやつにはもうひとつ別のドメインを追加というのができませんな。 まぁ。そりゃそ~だわな。 ま、別にエリアスでメール運用したらしまいだけど。


で、GASでのメール送信が1人1日500件までしかできないですね(CCは別です)。

でも、それでも無料版ありがたい。 本当にGoogle 様に食べさせて頂いております。
広告の効果があがるようになってきて、ちょっとは収入に(1円が100円になってきたらって世界だけど)なってきたので、欲が出てきて、より目立つように久しぶりにデザインを改善してみました。

デザインよりも表示早くするように改善するべきなのですが、いろいろjs実験場にしている関係でそれはもう アキラメてください!

よろしくお願いいたします。


お問合せフォーム

お名前 :
Email: (必須)
メッセージ: (必須)

 約束しないと、送信できません。再度の場合はリロードが必要です。


0 コメント :

コメントを投稿

コメントありがとうございます。


サイト内検索


View My Stats