Excelのダメなグラフでウソをつく法
http://id.fnshr.info/2016/03/28/excel-bad-charts/
なんだけど、勉強になる。
そっか、3Dで傾けると、ごまかせるのか・・・
円グラフは、手前に持ってくると、大きく見せられるんだね!
勉強になるなあ・・・
って、え、それをやるなっていう記事なの?
これって、ダチョウ倶楽部とおなじで、「やるなやるな」は、「やりなさい」の意味なんでしょ?
ちがうの?
を聞かれたので・・・需要あるのかな?
■お題
PowerPointのスライドの文字を、テキスト文字列として取り出したい
(SlideShareなんかが、そうなっている)
→検索サイトでひっかけてもらうのに、必要らしい??
■方法
*.pptx形式のものでしかできない。
1.拡張子を.pptxから.zipに変える
2.解凍する
→pptxファイルのフォーマットはzip。なので、拡張子をzipに変えれば、解凍できる
3.出てきたファイル、
ファイル名のフォルダ>ppt>slidesとフォルダを開いていく
4.そこにslide1.xmlから順にスライド数分、XMLファイルがあるはず。それを開く
5.その中に<a:t>で始まるタグがいくつもあるはず。それが、テキストの中身
以下、サンプルの図
■お題
PowerPointのスライドの文字を、テキスト文字列として取り出したい
(SlideShareなんかが、そうなっている)
→検索サイトでひっかけてもらうのに、必要らしい??
■方法
*.pptx形式のものでしかできない。
1.拡張子を.pptxから.zipに変える
2.解凍する
→pptxファイルのフォーマットはzip。なので、拡張子をzipに変えれば、解凍できる
3.出てきたファイル、
ファイル名のフォルダ>ppt>slidesとフォルダを開いていく
4.そこにslide1.xmlから順にスライド数分、XMLファイルがあるはず。それを開く
5.その中に<a:t>で始まるタグがいくつもあるはず。それが、テキストの中身
以下、サンプルの図
Wordで作成し、PDFにする。
(wordで「名前をつけて保存」→「PDFまたはXPS」)
Acrobatでフォントが埋め込まれたか、確認すると
(Acrobatで「ファイル」→「プロパティ」の「フォント」タブで確認できる)
システムフォント(上の2つ)は何も書いていない→埋め込まれていない!
でも、最近、「全てのフォントを埋め込め」という指定がある。
どうしよう~
さっきの、オプションダイアログで
ISO 19005-1に準拠のほうにチェックする
そうすると、
システムフォントも埋め込まれている。
(wordで「名前をつけて保存」→「PDFまたはXPS」)
Acrobatでフォントが埋め込まれたか、確認すると
(Acrobatで「ファイル」→「プロパティ」の「フォント」タブで確認できる)
システムフォント(上の2つ)は何も書いていない→埋め込まれていない!
でも、最近、「全てのフォントを埋め込め」という指定がある。
どうしよう~
さっきの、オプションダイアログで
ISO 19005-1に準拠のほうにチェックする
そうすると、
システムフォントも埋め込まれている。
情報処理学会の全国大会の論文、書いている人もいるかと思うけど
そこのサンプル、必要最低限の設定しかしていないそうで
↓ここで、本文の下の改行を削除すると
ってなかんじで、脚注の枠も動いてしまう。これはこまる。
改行を削除しても、枠は動かなくしたい!!
文字を入力しても、枠は動かなくしたい!!
その方法
(1)はじめに、線のほうを設定する
線を右クリックして、「オートシェイプの書式設定」を選択
(これ以外のポップアップメニューが出ることがある。
適当なところを選んで、何回かやると、これがでる・・と思う)
出てきたダイアログで
・四角を選択
・詳細設定ボタンをクリック
・水平方向
右方向の距離を選択し、基準をページにする(数字は自動的に変わる)
・垂直方向
下方向の距離を選択し、基準をページにする(数字は自動的に変わる)
・オプション
オーバーラップさせるのチェックをはずす(というか、全部のチェックをはずす)
で、あとはOKしてダイアログ閉じる。何も起こらないはず
(2)次に、脚注のはいっているテキストボックスを選択する
テキストボックスを右クリックして、「テキストボックスの書式設定」を選択
(これ以外のポップアップメニューが出ることがある。
適当なところを選んで、何回かやると、これがでる・・と思う)
出てきたダイアログで
・四角を選択
・詳細設定ボタンをクリック
・水平方向
右方向の距離を選択し、基準をページにする(数字は自動的に変わる)
・垂直方向
下方向の距離を選択し、基準をページにする(数字は自動的に変わる)
・オプション
全部のチェックをはずす
で、あとはOKしてダイアログ閉じる。何も起こらないはず
ここまでして、改行を削除すると、そして文字を入力しても、
脚注とその線は動かないはず
※ただし、大量に文字列を急激に入力すると、くずれることが、これでもあるみたい
なので注意(理由はよくわからない)
そこのサンプル、必要最低限の設定しかしていないそうで
↓ここで、本文の下の改行を削除すると
ってなかんじで、脚注の枠も動いてしまう。これはこまる。
改行を削除しても、枠は動かなくしたい!!
文字を入力しても、枠は動かなくしたい!!
その方法
(1)はじめに、線のほうを設定する
線を右クリックして、「オートシェイプの書式設定」を選択
(これ以外のポップアップメニューが出ることがある。
適当なところを選んで、何回かやると、これがでる・・と思う)
出てきたダイアログで
・四角を選択
・詳細設定ボタンをクリック
・水平方向
右方向の距離を選択し、基準をページにする(数字は自動的に変わる)
・垂直方向
下方向の距離を選択し、基準をページにする(数字は自動的に変わる)
・オプション
オーバーラップさせるのチェックをはずす(というか、全部のチェックをはずす)
で、あとはOKしてダイアログ閉じる。何も起こらないはず
(2)次に、脚注のはいっているテキストボックスを選択する
テキストボックスを右クリックして、「テキストボックスの書式設定」を選択
(これ以外のポップアップメニューが出ることがある。
適当なところを選んで、何回かやると、これがでる・・と思う)
出てきたダイアログで
・四角を選択
・詳細設定ボタンをクリック
・水平方向
右方向の距離を選択し、基準をページにする(数字は自動的に変わる)
・垂直方向
下方向の距離を選択し、基準をページにする(数字は自動的に変わる)
・オプション
全部のチェックをはずす
で、あとはOKしてダイアログ閉じる。何も起こらないはず
ここまでして、改行を削除すると、そして文字を入力しても、
脚注とその線は動かないはず
※ただし、大量に文字列を急激に入力すると、くずれることが、これでもあるみたい
なので注意(理由はよくわからない)
6月20日に
E2D3ユーザーズ・ミートアップ
の第一部にでてきたので、メモメモ
来場者アンケート
・(データ)ジャーナリスト:2
・アナリスト、まーけたー、営業、企画:6
・デザイナー、広告代理店:1
・その他(エンジニア:3人、インストラクタ)
E2D3とは
・Excel to D3の略
・Javascriptが扱えないと利用できなかったD3.jsを
Excel上で利用可能にする
D3.js
・任意のデータをDOMと結合させて
SVGとか・・・
・でーたどりぶんどきゅめんと
本日の開催背景と目的
・イベントはたくさん行い、賞も受賞
・実際に現場でもっと使ってもらいたい
・使用経験・意見を開発にフィードバックし、
よりよいプロダクトにしていきたい
http://e2d3.org
UseE2D3というところがあり、そこに書いてある通りにやるとできる
・OneDriveのストレージ→Excel onlineを開く
・E2D3は、Excelのアプリ
→2013から、アプリというのができた
Officeアプリ→Officeアドインの1つ
挿入→Officeアドイン
→ストア
→検索でE2D3を入れる
このツールを信頼する
→メニューからいれられる
・E2D3を起動
今使えるグラフのテンプレートがでてくる
データの持ち方がでてくる
Visualizeを押す
→ダミーデータが入っている
中身を作成、同じ形式にして、データ範囲しているすると出てくる
Save Image→SVG,PNGでだうんろーどできる
しぇあ チャート→URL、ブログ用に埋め込みもできる
・もどりかた:Homeボタンをおす
→前のデータの内容は消しておいてね(新しいのとバッティングするから)
→リトライでもう一回
留意事項
・加工する
・シートクリア
・リンクデータで反映される
通信がうまく入らなかったので、E2D3がうごかなそうだったので、
帰ってきた。このあと、第二部があったもよう。
こんど、いんすとーるしてみよっと
E2D3ユーザーズ・ミートアップ
の第一部にでてきたので、メモメモ
来場者アンケート
・(データ)ジャーナリスト:2
・アナリスト、まーけたー、営業、企画:6
・デザイナー、広告代理店:1
・その他(エンジニア:3人、インストラクタ)
E2D3とは
・Excel to D3の略
・Javascriptが扱えないと利用できなかったD3.jsを
Excel上で利用可能にする
D3.js
・任意のデータをDOMと結合させて
SVGとか・・・
・でーたどりぶんどきゅめんと
本日の開催背景と目的
・イベントはたくさん行い、賞も受賞
・実際に現場でもっと使ってもらいたい
・使用経験・意見を開発にフィードバックし、
よりよいプロダクトにしていきたい
http://e2d3.org
UseE2D3というところがあり、そこに書いてある通りにやるとできる
・OneDriveのストレージ→Excel onlineを開く
・E2D3は、Excelのアプリ
→2013から、アプリというのができた
Officeアプリ→Officeアドインの1つ
挿入→Officeアドイン
→ストア
→検索でE2D3を入れる
このツールを信頼する
→メニューからいれられる
・E2D3を起動
今使えるグラフのテンプレートがでてくる
データの持ち方がでてくる
Visualizeを押す
→ダミーデータが入っている
中身を作成、同じ形式にして、データ範囲しているすると出てくる
Save Image→SVG,PNGでだうんろーどできる
しぇあ チャート→URL、ブログ用に埋め込みもできる
・もどりかた:Homeボタンをおす
→前のデータの内容は消しておいてね(新しいのとバッティングするから)
→リトライでもう一回
留意事項
・加工する
・シートクリア
・リンクデータで反映される
通信がうまく入らなかったので、E2D3がうごかなそうだったので、
帰ってきた。このあと、第二部があったもよう。
こんど、いんすとーるしてみよっと
Excelのマクロ(VBA)を使って、
RESTでJSON形式で返ってくるサイトにアクセスして、
結果を表示したいということって、ありませんか?
(ないって・・・あると思ってください)
例えば、今、ある検索を、RESTでサーバー側で実行させていて、検索結果をJSON
で返して、ブラウザに表示しているんだけど、実は、Excelでも見たいんだよねえ~
というケース。
VBAでJSONを扱う
http://javascript.dohow.jp/advance/jsonvba.shtml
に、そのやり方が書いてあったので、やってみました。
■例
今、以下のJSONデータ
が、jsontestdata.phpにアクセスすると、得られるとする。
(JSONでのレコードの書き方は
Javascript|JSONでの、レコードの表現方法(配列、連想配列)→{}と[]の違い
を参照)
これを取得する
■ソースコード
■実行してみた
■注意点
名前がmytable,mynameなど、myをつけている理由。
これをtableとしてしまうと、VBAはTable,Nameなどのように、
1文字目を大文字にしてしまう(VBAにそういうプロパティ等があるため)
ところが、大文字にしてしまうと、当然、違うものなので、エラーに
なってしまったりする。
それが面倒なので、全てにmyをつけている。
RESTでJSON形式で返ってくるサイトにアクセスして、
結果を表示したいということって、ありませんか?
(ないって・・・あると思ってください)
例えば、今、ある検索を、RESTでサーバー側で実行させていて、検索結果をJSON
で返して、ブラウザに表示しているんだけど、実は、Excelでも見たいんだよねえ~
というケース。
VBAでJSONを扱う
http://javascript.dohow.jp/advance/jsonvba.shtml
に、そのやり方が書いてあったので、やってみました。
■例
今、以下のJSONデータ
{ "mytablename":"user", "mytable":[ {"myid":"1","myname":"family1 last1","mydate":"2014/12/10"}, {"myid":"2","myname":"family2 last2","mydate":"2014/12/10"}, {"myid":"3","myname":"family2 last3","mydate":"2014/12/10"}, {"myid":"4","myname":"family3 last4","mydate":"2014/12/10"} ] } |
が、jsontestdata.phpにアクセスすると、得られるとする。
(JSONでのレコードの書き方は
Javascript|JSONでの、レコードの表現方法(配列、連想配列)→{}と[]の違い
を参照)
これを取得する
■ソースコード
|
■実行してみた
■注意点
名前がmytable,mynameなど、myをつけている理由。
これをtableとしてしまうと、VBAはTable,Nameなどのように、
1文字目を大文字にしてしまう(VBAにそういうプロパティ等があるため)
ところが、大文字にしてしまうと、当然、違うものなので、エラーに
なってしまったりする。
それが面倒なので、全てにmyをつけている。
セッションIDを送らなくても、引き継がれるか実験。
■ソースコード
●PHP側 session.php
http://php.net/manual/ja/session.idpassing.phpを参考に一部編集
●Excel側session.xls(2003以前の形式xlsで保存)
「ボタン1」をクリックしたときの処理
(「標準モジュール」として作成)
■実験結果
●ボタン1をクリックすると、
Hello world! 1Times.
Hello world! 2Times.
Hello world! 3Times.
と上がっていく。ファイル(session.xls)を閉じても、Excelが開いて
いる場合は、カウントアップしていく
●Excelを閉じて、再度Excelを立ち上げ、開くと、1からカウントアップする
→つまり、Excelを閉じると、そこでセッションも切れる。
●ここで、3Timesになったとき、session.xlsをコピーし、session-コピー.xlsを
作成し、それを立ち上げ
session-コピー.xlsの「ボタン1」をクリックすると
Hello world! 4Times.
となる。つまり、Excelが同じなら、そこで開いているファイル内で
Sessionは共有される(ブラウザのタブと同じ?)
■ソースコード
●PHP側 session.php
<?php session_start(); if (empty($_SESSION['count'])) { $_SESSION['count'] = 1; } else { $_SESSION['count']++; } ?> Hello world! <?php echo $_SESSION['count']; ?>Times. |
http://php.net/manual/ja/session.idpassing.phpを参考に一部編集
●Excel側session.xls(2003以前の形式xlsで保存)
「ボタン1」をクリックしたときの処理
(「標準モジュール」として作成)
|
■実験結果
●ボタン1をクリックすると、
Hello world! 1Times.
Hello world! 2Times.
Hello world! 3Times.
と上がっていく。ファイル(session.xls)を閉じても、Excelが開いて
いる場合は、カウントアップしていく
●Excelを閉じて、再度Excelを立ち上げ、開くと、1からカウントアップする
→つまり、Excelを閉じると、そこでセッションも切れる。
●ここで、3Timesになったとき、session.xlsをコピーし、session-コピー.xlsを
作成し、それを立ち上げ
session-コピー.xlsの「ボタン1」をクリックすると
Hello world! 4Times.
となる。つまり、Excelが同じなら、そこで開いているファイル内で
Sessionは共有される(ブラウザのタブと同じ?)
あ、あれえええ??
Excelの「データ」にMySQL for Excelが入ってる(@_@!)
で、そこをクリックすると・・・
ど、どーして自分のパソコンにMySQL5.6が入ってるって、知ってるんだろう。
教えた記憶ないんだけどなあ・・
とにかく、それをクリック
え~、どうして、MySQL内のデータベースが見えるんだ?
教えた気ないんだけどなあ・・・
たしかにユーザーrootのパスワードはpasswordにしてあるから、
だれでもわかるんだけど・・・(テーブルには権限かけてない)
sakila(さきーら:あのMySQLのいるかのこと)というDB,
DBを作った気はないんだけど(MySQL5.6を入れた記憶はあるが)、クリック!
テーブルが見える(@_@!)
actorを選択「Edit MySQL Data」をクリックすると、
Importをくりっくしてみる
え、これで編集できるの?
ええええっ~
これ便利。
でも、自分入れたり、設定した記憶がまったくないんだけど・・・
・・・だれか、便利なので入れてくれたのかなあ?
小人さんが?ハッカーさんが?
みなさんのパソコンには、どうです?
もし、ハッカーさんの仕業なら、
次は、Windows8入れといてください。たのんます・・・
Excelの「データ」にMySQL for Excelが入ってる(@_@!)
で、そこをクリックすると・・・
ど、どーして自分のパソコンにMySQL5.6が入ってるって、知ってるんだろう。
教えた記憶ないんだけどなあ・・
とにかく、それをクリック
え~、どうして、MySQL内のデータベースが見えるんだ?
教えた気ないんだけどなあ・・・
たしかにユーザーrootのパスワードはpasswordにしてあるから、
だれでもわかるんだけど・・・(テーブルには権限かけてない)
sakila(さきーら:あのMySQLのいるかのこと)というDB,
DBを作った気はないんだけど(MySQL5.6を入れた記憶はあるが)、クリック!
テーブルが見える(@_@!)
actorを選択「Edit MySQL Data」をクリックすると、
Importをくりっくしてみる
え、これで編集できるの?
ええええっ~
これ便利。
でも、自分入れたり、設定した記憶がまったくないんだけど・・・
・・・だれか、便利なので入れてくれたのかなあ?
小人さんが?ハッカーさんが?
みなさんのパソコンには、どうです?
もし、ハッカーさんの仕業なら、
次は、Windows8入れといてください。たのんます・・・
今聞いたんだけど、試している時間がないので、メモメモ
(というわけで、試してはいない。どんなもんかよくわかんないけど)
iSpring Free 7
http://www.ispringsolutions.com/ispring-free
なんかそのページに、
Create Mobile-Ready Content
とか
Develop E-Learning Courses
とかかいてあるんだけど。。。
モバイルやSCORMも、ですって @_@!
※ちなみに、有償版は、「Tin Can API Support」って、まじ!
Excel2003までは、色のパレットがあって、
そこから適当に色が選べた。
2007でも色は選べるんだけど、
まず、上にはテーマの色というのが、出てくる。
このテーマの色は、ページレイアウトの配色で変えられる
たとえば、
キュートに設定すると
キュートになっている。
ここで、そのテーマの色のRGBが知りたいとき・・
マクロでしらべればいい。
こんなかんじ。
(ブルー、グリーン、レッドの順(つまり逆)になっている)
このマクロはこんなかんじ。
(C桁、F桁は =DEC2HEX(B3) のように16進数に変換している)
参考サイト
セルの操作(文字色の設定)
http://officetanaka.net/excel/vba/cell/cell04.htm
そこから適当に色が選べた。
2007でも色は選べるんだけど、
まず、上にはテーマの色というのが、出てくる。
このテーマの色は、ページレイアウトの配色で変えられる
たとえば、
キュートに設定すると
キュートになっている。
ここで、そのテーマの色のRGBが知りたいとき・・
マクロでしらべればいい。
こんなかんじ。
(ブルー、グリーン、レッドの順(つまり逆)になっている)
このマクロはこんなかんじ。
Sub getMyRGB() For i = 1 To 56 Cells(i + 2, 1).Interior.ColorIndex = i Cells(i + 2, 1) = i Cells(i + 2, 2) = Cells(i + 2, 1).Interior.Color Next For i = 1 To 12 Cells(i + 2, 4).Interior.ThemeColor = i Cells(i + 2, 4).Interior.TintAndShade = 0 Cells(i + 2, 4) = i Cells(i + 2, 5) = Cells(i + 2, 4).Interior.Color Next End Sub |
(C桁、F桁は =DEC2HEX(B3) のように16進数に変換している)
参考サイト
セルの操作(文字色の設定)
http://officetanaka.net/excel/vba/cell/cell04.htm
Excelとか、ふつう
のように、リボン(メニューの下の選択欄)が出てるけど、
これが消えることがある。こんなかんじ
クリックすればリボンは出てくるんだけど、これを出しっぱなし
にしたい場合
Officeボタン(ホームの上)を右ボタンクリック
出なくなっている状態の場合「リボンの最小化」に
チェックが入っているはず。これを選択して
チェックをはずせばOK
のように、リボン(メニューの下の選択欄)が出てるけど、
これが消えることがある。こんなかんじ
クリックすればリボンは出てくるんだけど、これを出しっぱなし
にしたい場合
Officeボタン(ホームの上)を右ボタンクリック
出なくなっている状態の場合「リボンの最小化」に
チェックが入っているはず。これを選択して
チェックをはずせばOK
ExcelVBAでサイトにアクセス、XMLを受け取ったら、セルに書き出したい!
http://blog.goo.ne.jp/xmldtp/e/1060c7d1a90990850b14fcf2fde2258d
では、
Set xdoc = httpObj.ResponseXML
Set itemNodeList = xdoc.getElementsByTagName("item")
でXMLのRSSが読み込めるんだけど、
サイトによっては、まったく読み込めないことがある。
このときなんだけど、理由は不明なのだが・・・
'target_urlに読み込み先URL,sendDataに送信データをあらかじめセット Set httpObj = CreateObject("MSXML2.XMLHTTP") httpObj.Open "POST", target_url, False Call httpObj.setRequestHeader("Content-Type", "application/x-www-form-urlencoded") httpObj.send (sendData) ' 結果表示 Set xdoc = CreateObject("MSXML2.DOMDocument") xdoc.LoadXML (httpObj.ResponseText) 'itemを取り出し(複数ある) Set itemNodeList = xdoc.getElementsByTagName("Name") |
のように、xdocをMSXML2.DOMDocumentでオブジェクト生成して、
それに、読んできたテキスト(httpObj.ResponseText)を
LoadXMLすると、うまくいくことがある・・・なぜか・・?
【ヒントにしたサイト(そのやり方ではない)】
http://hpcgi1.nifty.com/MADIA/VBBBS/wwwlng.cgi?print+200707/07070021.txt