[過去ログ] + JavaScript の質問用スレッド vol.122 + [無断転載禁止]©2ch.net (1002レス)
上下前次1-新
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
488: (オッペケ Sr27-32/C) 2016/12/12(月)12:35 ID:VLaUejgQr(1) AAS
>>484
次の二択
- switch 文を使う
- 配列を使う
引数2の処理は共通なので関数に逃がすか配列にしてコードを共通化するか
まあ、配列を使えばすっきりするだろうな
ところで、484はコードにすらなってないので制作依頼にも読めるんだが、自分でちゃんと書いてるんだよな?
489(2): (ワッチョイ 53c3-drn7) 2016/12/12(月)13:40 ID:KHTlL8cv0(1) AAS
JScriptでエクセルを扱うとき
var ExcelApp=new ActiveXObject( ”Excel.Application” )
ExcelApp.Visible=true
WScript.Sleep( 1000 )
var book=ExcelApp.Workbooks.Open( ”C¥¥Test.xls” )
var sheet=book.Worksheets( 1 )
としてエクセルファイルを開きますが、既に開かれているエクセルファイルを操作するには
どうしたらいいでしょうか
490: (ワッチョイ 0bce-drn7) 2016/12/12(月)22:35 ID:l2OsM7Pl0(2/2) AAS
switch文すっかり使わなくなったな。
switch文はコードを複雑にするだけだよ。
491(1): (ワッチョイ d35b-drn7) 2016/12/13(火)00:59 ID:uBZRzWX90(1/3) AAS
>>489
知らんが、そのまま開くだけじゃないか?要するに普通に2つ開くのと同じ。
一般的に考えて同期してくれるとは思えないが、最近のExcelならもしかして?
つか、そんなんでExcel開ける方がびっくりだわ。
大昔からやってる人には常識なのかもしれんが。
ActiveXでIE縛りから逃れられないってこれのことだったのか?
ついでに言っておくと、もしかして>>480って
「ダブルクリックで起動したときにEcho出力が見えません」ってオチじゃないだろうな?
それは「ハングアップ」とは言わないぞ。
492(1): (ワッチョイ 0bce-drn7) 2016/12/13(火)02:18 ID:MvIBvV300(1) AAS
>>491
> つか、そんなんでExcel開ける方がびっくりだわ。
> 大昔からやってる人には常識なのかもしれんが。
> ActiveXでIE縛りから逃れられないってこれのことだったのか?
大昔からっていうか、単にお前がWindowsのプログラミングを知らないだけだよ。
Windowsではな、GUIのアプリ同士が連携できる。
あるアプリの中に別のアプリを埋め込むことができる。
パイプによる連携だけじゃなくて、あるアプリをそのアプリが公開している
APIを使って操作するための共通の連携の仕組みがあるんだよ。
逆にこれがないなら、どうやってGUIアプリと連携させるんだ?
省5
493(1): (ワッチョイ d35b-drn7) 2016/12/13(火)19:45 ID:uBZRzWX90(2/3) AAS
>>492
× Windowsのプログラミング
○ Officeのプログラミング
だろ。まあいいが。
ただ、Excel文書を共有したいって業務がらみか?
だったら隣の席の奴に聞いた方がいいと思うし、普通はVBAだと思うが。
> 逆にこれがないなら、どうやってGUIアプリと連携させるんだ?
そんな連携は要らないというのがUnixの思想じゃないか?
普通にCSVを吐いてCSVを読み込む、ファイル経由での粗結合で十分ということだろう。
実際、これで困ることはないわけでね。
省8
494(1): (ワッチョイ 0bce-drn7) 2016/12/13(火)21:06 ID:iAtvyUgt0(1/2) AAS
>>493
> × Windowsのプログラミング
> ○ Officeのプログラミング
>
> だろ。
違う。Windows標準のやり方だから
同じ方法を使ってVBAでIEを自動制御だってできる。
495(1): (ワッチョイ d35b-drn7) 2016/12/13(火)23:20 ID:uBZRzWX90(3/3) AAS
>>494
では非マイクロソフト製品、例えばChromeやFireFoxの制御は出来るのか?
それが出来れば「Windowsのプログラミング」と言える。
出来ないのなら、「Microsoftのプログラミング」だね。
いずれにしても、MicrosoftがそういうAPIを用意していたこと自体はいいことだ。
ただそれを使うのがいいかどうかはまた別の話だ。
496(1): (アウアウイー Sa37-8ocn) 2016/12/13(火)23:42 ID:cZJz/amWa(1/2) AAS
>>495
出来るとは思うけど。
ある程度はsendkeys経由になるとは思うけど。
まぁ、順当に考えてちょっと面倒な話はおいとくけど、
ActiveXコンポーネントとして存在すれば呼び出せるよ。Officeに限らず。
VB6とかの頃の話だから、若い人は知らんのかな。
497(1): (ワッチョイ 0bce-drn7) 2016/12/13(火)23:48 ID:iAtvyUgt0(2/2) AAS
じゃあActiveXコンポーネントというのは
OSが用意している機能なのか?と質問されれば
YESとしか答えようがないからな。
498(2): (アウアウイー Sa37-8ocn) 2016/12/13(火)23:55 ID:cZJz/amWa(2/2) AAS
>>497
むしろそこが美味しい所だしね。
ActiveX縛りでIEから云々は的外れで、Webで使うにはあまりに何でもできるよね、まずいよね、
ってところから、IEから自由に使えなくなった過去があるレベル。
普通はVBAですらない。vbs。
csvが完璧に書式も持てるならcsvからcsv吐けばいいけど、
書式活かしたい、計算式活かしたいとなると充分どころか最低限すら満たさん。
ドヤ顔で「実際これで困ることはないわけでね」とか言って、アーキに口出しするなと言ってる自分がらもっとアーキに口出しすべきでない人間だとは皮肉なもんだな。
499(2): (ワッチョイ d35b-drn7) 2016/12/14(水)00:05 ID:bj02pMPP0(1/6) AAS
>>496
> ある程度はsendkeys経由になるとは思うけど。
それは「出来る」とは言わないだろ。というか屁理屈になってるぞ。
そもそもWin32APIははキーボード/マウスイベントを生成して打ち込むことが出来るから、
それで「出来る」というのならそれ以前から何でも「出来る」ことになる。
そしてそれはunixではもっと簡単に出来る。/dev/inputにリダイレクトするだけ。(やったことはないが)
だからそれで「出来る」というのなら、unixならもっと簡単に「出来る」ことになる。
そうではなくて、Excel側が共通の仕組み(ActiveXか?)からAPIを呼び出せるように整備されているだけでしょ。
だからchrome側からAPIをActiveX向けに提供してないと呼び出せない。
FireFoxはプラグインがあるみたいで、それを使えばいけるようだが。(Wikiによると)
省2
500(1): (アウアウイー Sa37-8ocn) 2016/12/14(水)00:18 ID:BIWUg/7Ya(1/2) AAS
>>499
dev/inputに流し込むって一般ユーザでできるっけ?
普通に間かました方が楽だと思うけど。それこそstdinでもらっちゃえばパイプしほうだいなんだし。
どう話を持っていきたいのかわからんが、非マイクロソフト製品、例えばAcrobatなんかはほぼフル機能が呼び出せるし、なんだかんだ、お前が思ってる以上に色々できると思うよ。
マイクロソフトのプログラミングでは決して無い。
APIという概念より更に上の、「オブジェクト」だよ。
昔からやってるから詳しいんじゃなくて、オブラートを取ると、お前が無知すぎるって言ってんの。
501(1): (ワッチョイ d35b-drn7) 2016/12/14(水)00:32 ID:bj02pMPP0(2/6) AAS
>>498
> 書式活かしたい、計算式活かしたいとなると充分どころか最低限すら満たさん。
Excel側にデータと書式を混ぜておいているのがいけない。
だってWebで同様の物を作ろうとしたら、データと書式は分離して、計算式もまた別に持つだろ。
データは鯖上のDB、書式はHTML+CSS、計算式はPHP+JavaScriptになる。
最初から全部別であることを強制される為、システムが小さい場合は確かにウザイが、
大きいシステムでも問題なく対応出来るし、変更に強い。
一言で言えば、「正しい」やり方ではある。
Excelでやるにしても、データシート(csv読み込み)と表示用シート(レイアウト済み)は別にして、
データシートの値を引っ張ってきて表示すればいいだけだし、それで全く問題ないだろ。
省6
502(2): (ワッチョイ d35b-drn7) 2016/12/14(水)00:45 ID:bj02pMPP0(3/6) AAS
>>500
まあ俺が無知なのは事実として、お前も相当馬鹿だと思うぞ。
何で「データ」と「書式」を混在させる必要があるのか、理由が言えるか?
/dev/inputは直接はスーパーユーザーからしか使えないとは思うけど、
スーパーユーザー権限でそこにリダイレクトするパイプなりを作っておいて、
それをユーザーに開放しておけいいだけの話だろ。
まあこれはもういいが。
> 例えばAcrobatなんかはほぼフル機能が呼び出せる
まあ分かった。
おそらくWindows上ではActiveXが使えることはすごく便利で、
省3
503: (ワッチョイ 0bce-drn7) 2016/12/14(水)00:57 ID:rsGVtDKV0(1/2) AAS
>>499
> そうではなくて、Excel側が共通の仕組み(ActiveXか?)からAPIを呼び出せるように整備されているだけでしょ。
だからExcelというアプリがOSが用意しているActiveXという仕組みをサポートしてるって話。
OSが規格化してるんだよ。アプリケーション間の共通のインターフェースの仕組みを
504(1): (ワッチョイ 0bce-drn7) 2016/12/14(水)00:58 ID:rsGVtDKV0(2/2) AAS
>>502
> 一昔前、或いは今もActiveXから使えるように整備しておくことが一般的で、
アプリケーション間のインターフェースだからな。
今はそれがセキュアになって、.NET(の一部)になっている。
505(2): (ワッチョイ d35b-drn7) 2016/12/14(水)01:08 ID:bj02pMPP0(4/6) AAS
>>504
> 今はそれがセキュアになって、.NET(の一部)になっている。
お?スレチだがちょっと教えてくれ。
これって.NETアプリは全部同様にスクリプトから触れるって事か?
例えば.NET(フォーム)のControlクラスがActiveX対応済みで
JScript等のスクリプトから値が取れたり設定出来たりするとか。
これならすごいなと思うが。
ただちょっと調べた限り、フォームコントロールとActiveXコントロールは別物みたいだが。
506(1): (アウアウイー Sa37-8ocn) 2016/12/14(水)01:40 ID:BIWUg/7Ya(2/2) AAS
>>501
混ぜておいてて良いよ…
ユーザ開放できないじゃん。
Webで同様のものは作らないよ。。
雛形のExcelファイルと、それに流し込まれるデータと、流し込むスクリプトだよ。
それがJSなだけ。
計算式はphpとかjsにしない。
一言で言えば、正しいなんて無いんよ。
データシートとレイアウトシートはもちろん分けるけど…どこから混ぜるって話出てきたの?
そこで、データシートとレイアウトシートをセットで管理できるExcelなんじゃん。
省9
507(1): (ワッチョイ 4fe1-cKcd) 2016/12/14(水)02:05 ID:ruWVQ7Ya0(1) AAS
>>505
UI Automationで大体のことはできるよ
Chromeとかの操作ならSeleniumが有力かな。これはwindows限定ではないけど
ちなみに、Excelはただデータを表示するだけのソフトじゃなくて、意味不明なほど高機能
xlsxの仕様は数千ページに及んでる
POIとかClosedXml見たいなライブラリで大体はxlsxファイルを処理できるけど、結局COMでExcelを操作するのが安定の場合もあるので何とも言えない
エクセル操作するなは、Webで言うならブラウザ使用禁止ぐらいの縛りプレイな場合もある
上下前次1-新書関写板覧索設栞歴
あと 495 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.015s