忍者ブログ
おかげさまでspamコメントが増えてきましたので、一応コメントを承認制にしました。基本的には承認します。
[8] [9] [10] [11] [12] [13] [14] [15] [16] [17] [18]
×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

ちょっと褒めて終わりましょう、ということで一日二回更新。極端。

内省報告でもなんでもいいんですが、何かしらテキストで回答したものを、エクセルに自動的にはっつけるスクリプトです。これは多分、うまく使えば結構便利だと思います。

set questionList to {"本日の体調は?", "本日の実験に対する感想は?", "次に参加する際の連絡先は?"}
--質問のリスト。{}内に、要素をコンマで区切って並べると、リスト内要素になります。
set answerList to {}
--回答のリストを入れるための変数を作っておく
repeat with i from 1 to number of questionList
--質問リストの個数分繰り返す
display dialog item i of questionList default answer "" buttons {"Answer", "Cancel"} with icon 1 default button 1 with title "内省報告" cancel button "cancel"
--質問リストのi個目を、dialogに出す。default answerは空。[Answer]と[Cancel]ボタンを入れる。ひとつめ(Answerの方)のボタンをデフォルトにする。タイトルは"内省報告"。"cencel"の方は、cancelボタンにする。
set end of answerList to text returned of the result as Unicode text
--結果として、テキストに入力したものを、answerListの最後に入れる(Unicode textとして)
end repeat
--繰り返しおわり

tell application "Finder"
--Finderを呼び出す
open application "Microsoft Excel"
--Excelを開く
tell application "Microsoft Excel"
--Excelをactivate
make new workbook
--新しいworkbookを開く
repeat with i from 1 to number of answerList
--answerListの個数分繰り返し
set formula of column 1 of row i to item i of answerList
--answerListのi個目のアイテムを、excelの開いたシートの1列目のi行目に入れる
end repeat
--繰り返し終わり
end tell
--Excelのactivate終わり
end tell
--Finderのactivate終わり
ボタンをあれこれ弄ると、五件法で回答させたりもできるかも。あと、たとえばこっちでsubject numberとかを入れておくと、記録するシートを開いて、subjectnumberに対応するセルにデータをだーっと入れて行く、ということも可能かも。

もう多分applescript記事は当分書きません。

拍手[0回]

PR

もともとVBAが使えていたんですか,というと使えていなかったんですが,ともあれexcel2008ではVBAが使えない(んですよね?),ということで,ちょっとapplescriptを試してみたので覚え書きです。参考にしたのは,microsoftの Offcie 2008 Developersとか,excel applescript (PDF)とか。後者の元のページがどこかが良くわからないです…

さて,まずは"tell"。

tell application "Microsoft Excel"

なんのアプリケーションに対して以下のスクリプトを実施するのか?ということを,tell x で明示する必要があるようです。まずはExcelを使うのでこういう形ですが,Excelそのものの中でも,

tell sheet "sheetname" of active workbook
などとして使います(この場合は,どのワークシートを使うか,ということで,こっちの方が有用ですね)。あ,"active"というのは,今動かせるやつ,的な意味ですね(たとえば,複数のワークブックを開いていれば,一般的には「最後の奴」だったり,「今クリックした奴」だったりするアレです)。

次に,"set x to y"。

set name of active sheet to "50ms"
のように使います。基本的には,いわゆる「変数」でして,xにyを代入する,ということなのですが,Excelのセルやシートの名前にも適用できることになります。新しいファイルを開くと,"sheet1"があると思いますが,上記スクリプトによって,sheet1の名前が50msに変わる,というわけですね。たとえば。まだ試しては無いのですが,set X to {a,b,c,d,e}とすれば,Xの中にリストの形で変数を設定することができます。1 of Xとかにすると,aを呼び出せるということのようですね。

また,これはこのまんま覚えていただくとして,

make new worksheet at active workbook with properties ¬
{name:"(150ms)", display page breaks:false}
というので新しいシートを作成することができます。¬←これは読み方が良くわからないのですが,alt+Lで出ると思います。{}内にもう少し色々なプロパティが設定できるようですが,とりあえず name:"sheetname"で,ダブルクオーテーション内の名前が新しいシートの名前になります。

コピーについては,いくつかのやり方があり,最もシンプルなやり方は,

copy X to Y
で,Xをコピーし,Yにペーストするというものです。ここで,X(あるいはY)の設定は,
column A of row b
のように,セルの位置を左上を基点として呼び出す方法と,
range "An:Xm"

というように,セル名をrangeで呼び出す方法があるようです。この場合は,copy range (rangeを指定)というコマンドになるので,実際は
copy range (range "A1:A10")
のようになります。更に,より詳細にどこからコピーするかを明白にすることもできます。たとえば,
copy range (range "A1:A10" of sheet "sheetname" of active workbook)
のように。rangeの場合,コピー先は,多分頭のセルだけを設定すれば良いように思います。

とりあえずコピーだけしておいて,ペーストは別にする,ということも可能です。この場合は,

paste worksheet destination range "A3"
とすれば,A3を基点として,コピーしておいたレンジを張り付けることができます。別のシート等にペーストをする場合は,その前に,
tell sheet "sheetname" of active workbook
として,ペースト先のシートを明示しておきましょう。

ある式を特定のセルに入れるためには,次のようにします。

set formula of range "A1" of active sheet to "-199.795"
"formula"というのが良くわからないのですが,これがないと,range "A1" of active sheetという「変数」に"-199.795"という値を書き込むよ,という話になってしまい,セルに記入してもらえません。

また,この値に1000/600を足し続ける,だとか,ある列のセルを加算したものを下に並べていく,というときには,もっと良い解があるかもしれませんが,とりあえずrepeat処理を使うのが便利です。まず例を出しますと

repeat with i from 1 to 422
set formula of column 1 of row (i + 1) of active sheet to "=A" & i & "+1000/600"
end repeat
とすれば,さっき設定したA1の値に,1000/600を延々と足し続けるということが可能です。具体的に説明しますと,
repeat with i from 1 to 422
というのは,iという変数に,1から422の数字を入れます,ということですね。これは別に1から始まらなくても良いようです。次の,
set formula of columun 1 of row(i+1) of active sheet to
までをまず説明すると,今のシート(active sheet)の一列目,(i+1)行目に,to以下のものを入れていきますよ,ということになりますよね。iは1から422でしたから,2から423の値が入りますよ,ということになります。次に,
"=A"&i&"+1000/600"
というのは,かなり苦肉の策なんですが…。やりたいことは,ひとつ上のセルの値に1000/600を足したいということです。つまり,A1セル(-199.795)以下は,A2セルに=A1+1000/600,A3セルに=A2+1000/600…といれていきたいんですね。普通にエクセルシート上であれば,$なしでコピペしていけばできるわけですが,applescriptでそれを実装するためにどうしたか,ということですね。ダブルクオーテーションで囲むと「文字列」として認識され,囲まないと変数(設定していれば)として認識されるはず,さらに文字列と変数を,&で繋ぐことができますよ,ということだったので,結局入れたい式のうち変わっているのはAの後にくる数字だけということなので,
"=A"にi(数字)を入れて,その後に,"+1000/600"をつなげますよ
ということになるわけです。うーん,うまく説明できない…。最後の
end repeat
というのは,ここまでで「repeat」が終わりですよ,ということで,まあこれはおまじないですね。

特定の行のデータを平均した,新たな行を作りたい,とかいう場合は,おそらく

repeat with i from 1 to 100
set formula of column 10 of row i to "=average(A"&i&",B"&i&",D"&i&",E"…&i&")"
end repeat
とかになるでしょうか。とりあえず使えるようになったところはこんなところです。誤解もあるかもしれませんので,詳しい方で気が向いたらいろいろ教えていただければと思います。

今日の結論:matlabを使った方が早いよ

拍手[1回]

今まで世間がEvernote,Evernoteと騒いでいるのがあまりピンと来ておらず、よくわかっていなかったのですが、ここ一ヶ月で、「あーこれは便利だわー」と思ったEvernoteの使い方二つを紹介します。あまり研究とは関係ない気がします…。

とっとくほどではない/とっといても見返しはしない/でもちょっとだけ有益なことが書いてる(気がする)チラシ・広報のメモに使う

これは渡辺だけのような気もしますが…たとえば、札幌市では「広報さっぽろ」という広報誌が届くわけですが、この中で、年金の額がちょっと上がりますよ、とか、確定申告の日付はいついつまでで、とかいう記事があったりするわけです。あるいは、JAF MATEに載っている、車の掃除方法でもいいですし、ふりっぱー(これはなんていうんだろう…無料のコミュニティチラシ、というか…)もほとんど捨てるんですけど、新しくオープンしたお店(最近だと、三井アウトレットパークとか)の特集とかはちょっと興味がある、というときに、とりあえずそのページをiPhoneで撮影して、適当なタグをつけてEvernoteにアップしておきます。この「適当なタグ」というのは、ま、テキトーにやっときましょ、テキトーに、の適当ではなくて、この問題を解決するための適当な方法、の方の適当です。どういうことかというと…

  • 年金の額とか、確定申告の日付とか、車の掃除方法とか:「すごく必要ではないけど、たとえばぽんと時間が空いたときに確定申告の日付を思い出せれば、その処理ができるし、車の掃除方法を見る事ができれば、ちょっと掃除してみても良いかもしれない」タグ…だと長いので、「glimpse」(ちらっと見る、という意味らしいけど、ニュアンスがぜんぜん違うかもしれない)というタグにしています。
  • 新しくオープンしたお店の場合は[お出かけ]、に加えて[パン屋]とか[服屋]とか適当なタグをつけています。
  • 無料配布のレシピ(スーパーマーケットとかに時々あるやつとか、ほくでんについてきたりするやつ)には、[レシピ],[メイン食材の名前]というタグをつけています。
それで、ここからはちょっと精神修養というか、習慣の切り替えが必要ではありますが、毎日Evernoteにアクセスするようにします。渡辺の場合は、Firefoxのブックマークバーに、RSSのフォルダがあって、そこの最下部にRSSじゃないんだけどEvernoteを入れているんですが、まあそんな感じ。それで、とりあえずglimpseを見る習慣をつけると、その場に適したメモに当たる可能性があります。もっとうまくいくときは、たとえばドライブに行くときに、[お出かけ]タグを見ると今行こうとしている方面にこういうお店があるから寄って見ようとか、買い物中に、かぶが安い!でも何作ろう、というときに、[かぶ]で検索すると、過去に記録したレシピに偶然当たってうまく食材を揃えられるとか、これを一回味わうと、おお!と思います。思うんですよ。この「おお!と思う」をうまく説明したいところですが難しいですね…初めのうちは、このタグでたとえば買い物リストだったり、ToDoを入れておくと、見る動機付けになるかもしれません(あれ、本末顛倒か?)。いやでも、Evernoteの便利さは、まず「しょっちゅうアクセスする」結果、「乱雑にとったメモ、アップした写真が目に飛び込んでくる」というところにある気がするんですよ…ということでお試しいただきたいと思います。

ずいぶん長くなってしまいましたが、一応二つ目も書いときます。こっちの方が実用性は高いかもしれません

家にあるものを場所ごとにタグ付けしてアップロードし、うちにあるものリストをつくる

ということで、これはわかりやすいと思いますが、まず一度家にあるあらゆるものを写真にとってタグをつけます。タグそのものは、場所で区分されていればなんでも良い(自分に便利なようにカスタムすれば良い)と思います。で、そうすると、どこに何があるか、を把握するきっかけになるし、かつその後はいつでもアクセスできるので、新しい物を買うとき等に検討が容易になります。もっともわかりやすい例で言えば、シャンプーとかボディソープとか塩とか洗剤とか、なんでもいいんですけど、そういうストックが必要なものについては、とりあえず写真をとってアップロードしておき、ストックを使ったらその写真を捨てるように心がけておけば、買い物に来て、あれ塩のストックあったっけ、というときに、(たとえば)「台所」タグで調べれて塩がなければああないな、というのがわかるわけですね。(このときに、調味料タグとか作ったほうがいいなーと思ったり)。最初に写真を撮りまくり、タグをつけてアップロードしまくるのはしんどいといえばしんどいのですが、まあ、無料会員の場合は月にアップロードできる量も限られていますので、何ヶ月かに分けるくらいのゆるやかな気持ちでやると良いかと思います。これを一回やると、まず写真撮るときに、これはいらねーわ、というものは捨てられますし、あとここまで来たら…ということで、そこまで思い入れのない手紙等はスキャンしたり、写真に撮った状態で残すということで良いかなーと思い切って処分できたりしますので、それだけでかなりすっきりします。かつ、もうちょっとハードなもの、例えば新しい食器を買おうかなーというときには、今ある食器と合う奴はどれだ、というのを写真見ながらできたりしますし(そして、台所タグに加えて、食器タグがあった方がいいかもなー、等と思い始める)、そういえばここにアレがあるから買わなくてもいいかな、とかもわかりやすくなります。あとは、掃除とか整理をするときに、イレギュラーなものが出てこなくなるので、あー、こんなものがここにあったのか…見よう/これはあっちにいれなくちゃ、みたいなことがなくなります。事前に、ここのこれをこっちに移し、あときれいに並べる、みたいにかなりの程度目的を明確にして掃除や整理に取りかかれるので、効率が上がります。これはかなり効能がある気がしています。

というところなのですが、なにこの記事長くて恐い…さて、書き終わってから、自分の持ち物をひたすらevernoteに突っ込んだ先人がいる事がわかりまして、あれじゃあこの記事は読みにくいだけじゃ…と思ったのですが、でもまあ、これだけ書いたのでアップします。参考になれば。なるかなあ…。でも、Evernoteの面白みというか、使ってよかった感は、情報がある閾値を超えて集積したときに発揮される気がするので、Evernoteがはやっているらしいから使ってみたいんだけど、何が面白いかよくわからない(渡辺のこと。こういうのをツールに使われる、という)、という人は、とにかく色々なものを取り込んでみる、というのをまずはおすすめします。

拍手[0回]

本日iOS4に乗り換えまして、ついでにということでiBookをダウンロードしてみました。それで、いくつかのPDFファイルを取り込んでみたんですが(iTunesに入れるのではなくて、直接PDFファイルを開き、iBookに取り込みとして)、これが読めないんですね。正確にいうと、表紙は本棚(ライブラリ)に見え、ファイル名もわかるのですが、これをタップしてもうんともすんとも言わない、とこういう状態です。

で、試行錯誤したんですが、結局、くまのプーさんの無料版をダウンロードして、書籍が一冊ライブラリにある状態にしたところ、iBook画面上部に書籍|PDFというタブ?が現れ、これをPDFに切り替えることで無事ファイルが読めるようになりました。めでたしめでたし。再現性があるか不明ですが、類似の事例で困っている方はなんかダウンロードしてみてはどうでしょうか。とりあえず、iBookのバージョンは1.1、iPhoneのバージョンは4.0、今日の日付は6月24日です。

拍手[0回]

ようやくsnow leopardを購入しようと思い,クリーンインストールをしなきゃなと思ったので,しばらくとってなかったバックアップを取ろうとしたところ,何度か

Time Machinのエラー:バックアップの作成を完了できません。バックアップボリュームにファイルをコピー中にエラーが起きました。
というウインドウが現れてうまくいかないので,あれこれググった結果,侍ズム:Time Machie_バックアップの作成を完了できません。-その2に到達して,ようはBackups.backupdbの2010-05-10-180318.InProgressという(YYYY-MM-DD-hhmmss.InProgress)ファイルを削除すればいいんじゃない,ということがわかったので,これをゴミ箱に入れ,消しといた方がうまくいきそうだなーと思ってゴミ箱を完全に空にするを選択したのが運の尽きで,削除する項目が130万を超えておりまして,二時間放置したのですがまだ120万件残っているということで,明日の朝までに終わりますようにと祈りつつ今日は帰宅します。ゴミ箱を空にするで良かったよね。でもこんな日もあるよね。

拍手[0回]



忍者ブログ [PR]
カレンダー
04 2024/05 06
S M T W T F S
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
メールはこちらから
プロフィール
HN:
渡辺隼人
性別:
男性
ブログ内検索
カウンター
コガネモチ