• 締切済み

php javascriptで既存excelを起動させ色つけ

質問の場所が違ったら申し訳ありません 開発はphpで行っています IEで ボタンが押されたら指定したセルが染色された状態で既存のエクセルが画面に出力されるようにしたいのですが読み取り専用になってしまっているのか編集されていない状態で出力されてしまいます var xlApp = new ActiveXObject("Excel.Application"); xlApp.DisplayAlerts = false; xlApp.Visible = true; xlApp.Workbooks.Open("C:\\TEST.xls", 0, true); ExcelSheet.ActiveSheet.Cells(parseInt(document.getElementById('tate').value), parseInt(document.getElementById('yoko').value)).Interior.ColorIndex = 1; ExcelSheet = ""; ExcelQuit(Book1); わかりにくい質問で申し訳ありません もしお時間があればご回答おねがい致します

みんなの回答

  • fujillin
  • ベストアンサー率61% (1594/2576)
回答No.1

質問文が途中省略されているのかわかりませんが・・・ ExcelSheetが突然表れてますが、これにブックのオブジェクトが入っていないだけでは? 試しに、  Es.ActiveSheet.Cells(2,2).Interior.ColorIndex = 3; で実験してみると、セルB2が赤になります。(3 = 赤) あと、ブックのクローズはClose()メソッド、アプリケーションの終了はQuit()メソッドではないかな? Quitしても、EXCEのプロセスはまだ残っているみたいだけど・・・ このあたりが参考になるかと(JScriptですけど)  http://www.happy2-island.com/vbs/cafe02/capter00401.shtml

rainosu123
質問者

補足

ご回答ありがとうございます >質問文が途中省略されているのかわかりませんが・・・ 質問がいたらなく申し訳ありませんでした 既存のエクセル(test.xls)を染色し画面に出力するにはどの用にすればよいのでしょうか とお聞きしたかったのです。 申し訳ございませんでした。 function al(){ var xlApp = new ActiveXObject("Excel.Application"); xlApp.DisplayAlerts = true; xlApp.Visible = true; xlApp.Workbooks.Open("C:\\TEST.xls", 0, true); ActiveSheet.Cells(2,2).Interior.ColorIndex = 1; } 上記のコードではopenはできるのですが染色ができない状況です お忙しい中ご回答ありがとうございました いただいたURLより勉強してみます

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • JAVAscriptでexcelを編集 表示

    JAVAscriptでexcelを編集 表示 こんにちは JAVAスクリプトで既存のexcelのセルの色を変えて画面に出力したいのですが うまくいきません var xlApp = new ActiveXObject("Excel.Application"); xlApp.Visible = true; xlApp.Workbooks.Open("c:\\Book1.xls"); ExcelSheet.ActiveSheet.Cells(parseInt(document.getElementById('tate').value), parseInt(document.getElementById('yoko').value)).Interior.ColorIndex=1; よろしければご教授お願い致します

  • excelを上書き時の警告をなくすには

    <script language="JavaScript"> var xlApp = new ActiveXObject("Excel.Application"); var ExcelSheet; ExcelSheet = xlApp.Workbooks.Open("C:xxx"); ExcelSheet.ActiveSheet.Cells(parseInt(document.getElementById('tate').value),parseInt(document.getElementById('yoko').value)).Interior.ColorIndex = 3; ExcelSheet.SaveAs("C:Excel.xls"); //C:Excelは既に存在しています ExcelSheet.Application.Quit(); ExcelSheet = ""; </script> 色を付け編集したExcelを上書き保存する場合なのですが 確認のダイアログを出さずに保存を完了させる方法はございませんでしょうか? ExcelSheet.Application.DisplayAlerts = False こちらで試してみたところ保存されておりませんでした もしお時間がございましたらご回答いただきたく思います

  • javascriptの初心者です。

    初歩的質問で失礼します。 javascriptでフォームの中にテキスト欄が3つあり、 テキスト欄3に入力された数字が奇数なら赤、偶数なら青となるプログラムにしたいと思い、 下記のようにしまいしたが、elseの青文字にしかならずに悩んでいます。 本当に初心者ですいません。が、アドバイス頂けたら宜しくお願いいたします。            function men(){ tate=document.form1.text1.value; yoko=document.form1.text2.value; document.form1.text3.value=tate*yoko/2; if ((men%2)==0){ document.form1.text3.style.color="red"; }else { document.form1.text3.style.color="blue"; } }

  • JavaScript 複数のIDがある時の処理

    時々お世話になっております。今回はJavaScriptを始めたばかりでどうにもイメージが湧かずに質問させて頂きます。以下のサイトでformのselectを選択したら情報が表示されるものを作りたいと思い、イメージに近いソースを拝見しました。 https://memorva.jp/memo/html/javascript_onchange_select_menu.php ーーーー以下HTMLーーーー <form action="#" method="post" name="form"> <select name="kaizoudo" id="kaizoudo"> <option value="manual">手入力(以下のテキストボックス)</option> <option value="8k">8K(7680×4320)</option> <option value="4k">4K(3840×2160)</option> <option value="fhd">FHD(1920×1080)</option> <option value="hd">HD(1280×720)</option> </select> <br /> 画面の横のピクセル数<br /> <input type="text" value="" name="yoko" id="yoko"><br /> 画面の縦のピクセル数<br /> <input type="text" value="" name="tate" id="tate"><br /> </form> ーーーー以下JavaScriptーーーー <script> document.getElementById("kaizoudo").onchange = function(){ var kaizoudo = document.getElementById("kaizoudo"); var dw = ''; var dh = ''; switch(kaizoudo.value){ case 'manual': dw = ''; dh = ''; break; case '8k': dw = 7680; dh = 4320; break; case '4k': dw = 3840; dh = 2160; break; case 'fhd': dw = 1920; dh = 1080; break; case 'hd': dw = 1280; dh = 720; break; } document.getElementById("yoko").value = dw; document.getElementById("tate").value = dh; }; </script> ーーーーここまでーーーー 問題はこれを複数のselectを選択できるようにしたいのですが、どのように設定すれば良いのかイメージが湧きません。。。 <イメージ> 商品1 選択肢 選択した情報(yoko) 選択した情報(tate) 商品2 選択肢 選択した情報(yoko) 選択した情報(tate) 商品3 選択肢 選択した情報(yoko) 選択した情報(tate) ・ ・ ・ 【送信】 ※選択肢は全て同じです 当然IDはユニークなためid="kaizoudo"を繰り返し使う訳にはいかないので、kaizodo1,kaizodo2のように固有のIDを作りselectを設置するようになると思いますが、JavaScriptをIDごとに書くには字数が多くなりますし、選択肢はこれよりもっと多くなることを想定しておりますので、できればWhileやforで反復処理できないかと考えております。 (PHPなら少々分かるのですが、JavaScriptはまだ勉強しておらず) 上記内容にてヒントを頂ける方がいらっしゃいましたら、よろしくお願い致します。

  • javascriptでexcel閉じる

    javascriptで開いているexcelを閉じたいのですが、 その際、今の記述(下記)では、閉じる前に「保存しますか?」メッセージが表示されます メッセージを表示させずに、保存せず閉じたいのですが、方法はありますでしょうか? 教えてください、宜しくお願いします ====== ソース抜粋 ====== var strEX = "C:\test.xls"; var xlApp = new ActiveXObject('Excel.Application'); xlApp.Workbooks.Open(strEX, 0, true); -- 処理 -- (処理になんらかのエラーが発生した場合は保存せずにそのまま閉じたい) xlApp.Quit(); ========================

  • javascriptでラジオボタンのが変更できない

    javascriptを勉強中なのですが 練習で下記のような麻雀の計算をしてくれるサイトを作ってみましたがうまく反応しません。 http://tegarude.sakura.ne.jp/mafu/form.html できない点は、例えば、ロンの項目で面前のチェックの時、ツモの項目にいいえが入りますが、 その後、ツモの項目で平和のチェックをいれようとしてもチェックが入りません。 javascriptで操作するようにしたのですがどうもうまくいきません。 単純なこと簡単なことなのかもしれませんが どなたかご教授願えませんでしょうか? ソースコードが長いのでjavascriptの記述のみ載せています。 サンプルのURLを参考にして下さい。 function on(){ //ロン・ツモ・待ち・雀頭の値を取得 function mjk01(m1,m2){ for (j=0; j<m1.length; j++){ if(m1[j].checked){ m2.innerHTML=m1[j].value; } } } mjk01(document.form1.radio2,document.getElementById("a00")); mjk01(document.form1.radio3,document.getElementById("a01")); mjk01(document.form1.radio4,document.getElementById("a02")); mjk01(document.form1.radio5,document.getElementById("a03")); //formプロパティの省略 formt=document.form1; //ロン項目設定 if(formt.radio2[0].checked){ formt.radio3[3].checked=true; formt.radio7[0].checked=true; formt.radio9[0].checked=true; formt.radio11[0].checked=true; formt.radio13[0].checked=true; } if(formt.radio2[1].checked){ formt.radio3[3].checked=true; formt.radio4[0].checked=true; formt.radio5[2].checked=true; formt.radio6[0].checked=true; formt.radio8[0].checked=true; formt.radio10[0].checked=true; formt.radio12[0].checked=true; } if(formt.radio2[2].checked){ formt.radio3[3].checked=true; } //ツモ項目設定 if(formt.radio3[0].checked){ formt.radio2[3].checked=true; formt.radio4[0].checked=true; formt.radio5[2].checked=true; formt.radio6[0].checked=true; formt.radio8[0].checked=true; formt.radio10[0].checked=true; formt.radio12[0].checked=true; } if(formt.radio3[1].checked){ formt.radio2[3].checked=true; formt.radio4[0].checked=true; formt.radio5[2].checked=true; } if(formt.radio3[2].checked){ formt.radio2[3].checked=true; } //面子の設定 function mentsu(m1,m2,m3){ if(m1[0].checked){ m2[1].value=4; m2[2].value=16; m2[3].value=8; m2[4].value=32; } if(m1[1].checked){ m2[1].value=2; m2[2].value=8; m2[3].value=4; m2[4].value=16; } for(i=0; i<m2.length; i++){ if(m2[i].checked){ m3.innerHTML=m2[i].value; } } } mentsu(document.form1.radio7,document.form1.radio6,document.getElementById("a04")); mentsu(document.form1.radio9,document.form1.radio8,document.getElementById("a05")); mentsu(document.form1.radio11,document.form1.radio10,document.getElementById("a06")); mentsu(document.form1.radio13,document.form1.radio12,document.getElementById("a07")); //小計をすべて数字に変換 num0=document.getElementById("a00").innerHTML; num1=document.getElementById("a01").innerHTML; num2=document.getElementById("a02").innerHTML; num3=document.getElementById("a03").innerHTML; num4=document.getElementById("a04").innerHTML; num5=document.getElementById("a05").innerHTML; num6=document.getElementById("a06").innerHTML; num7=document.getElementById("a07").innerHTML; num0 = parseFloat(num0); num1 = parseFloat(num1); num2 = parseFloat(num2); num3 = parseFloat(num3); num4 = parseFloat(num4); num5 = parseFloat(num5); num6 = parseFloat(num6); num7 = parseFloat(num7); //総合計の算出 document.getElementById("total").innerHTML=num0+num1+num2+num3+num4+num5+num6+num7; }

  • javascriptで2箇所のphpの関数を取得したいのです。

    javascriptで2箇所のphpの関数を取得したいのです。 見よう見まねでやっている初心者です。よろしくお願いします。 javascriptにてphpの関数をよびだしてhtmlのinput type="text"に値を出力しようとしています。 2か所のphp を下記のようにhtmlに書いて取得しようとしたのですがどちらか一方しか取得できません。 なんとか両方を読み込めるようにできないでしょうか?分かりにくい質問かと思いますので例を書いて見ましたのでどうかよろしくお願いいたします。 (例) <script type="text/javascript" src="../data/zzz.php?aaa=abc" ></script> <script type="text/javascript" src="../../../data/xxx.php?bbb=abc" ></script> 上記のように書いても片方しか取得しないようです。 以下../dataのzzz.phpのphpです。 <?php $aaa = $_GET['aaa']; header("Content-type: application/x-javascript"); echo "window.onload = function () {"; if ($aaa== 'abb') {echo "document.getElementById(\"xxx\").value=100;","document.getElementById(\"yyy\").value=1;";} elseif ($aaa == 'abc') {echo "document.getElementById(\"tanka\").value=120;","document.getElementById(\"yyy\").value=2;";} echo "}"; ?> 以下../../../dataのxxx.phpのphpです。(例) <?php $bbb = $_GET['bbb']; header("Content-type: application/x-javascript"); echo "window.onload = function () {"; if ($bbb== 'abb') {echo "document.getElementById(\"zzz\").value=50;","document.getElementById(\"vvv\").value=10;";} elseif ($bbb == 'abc') {echo "document.getElementById(\"tanka\").value=51;","document.getElementById(\"vvv\").value=20;";} echo "}"; ?> 以上2か所のディレクトリのphpを取得したいのですが、これはできない事なのでしょうか?ちがうディレクトリから取得しなければ更新作業が大変になってしまうのです。どうかよろしくお願いいたします。

    • ベストアンサー
    • PHP
  • JavaScriptのプルダウン処理について

    最近JavaScriptを勉強し始め、うるう年に対応した日付プルダウン処理が可能、という事なので、ネットを参考に以下のようにしてみました。 //月によって日数を変更する処理 function setDay(year,month,day) { var y = parseInt(document.getElementById(year).value,10); var m = parseInt(document.getElementById(month).value,10); // 閏年判定 if (2 == m && (y % 400 == 0 || (y % 4 == 0 && y % 100 != 0))) { //月の最終日の変数 var last = 29; } else { var lastday = new Array(31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31); last = lastday[m-1]; } // 要素取得と初期化 var obj = document.getElementById(day); obj.length = 0; // 日の要素を追加 for (var i = 0; i < last; i++) { obj.options[obj.length++] = new Option(i + 1, i + 1); } } これでうるう年対応とする事は出来たのですが、恥ずかしい事にネットの情報なので、何をしているのかおぼろげにしか理解出来ません。大変申し訳ないのですが、このソースについて解説して頂けないでしょうか?どうぞよろしくお願い致します。

  • JavaScriptで設定した情報をPHPに渡す

    JavaScriptで日付設定を設定して頂き、サブミットを押すと値をPHPに渡す、という事をしたいのですが、JSからPHPに値の受け渡しというのは可能なのでしょうか? また、それはどのようにすればいいのでしょうか? 以下が現在のコードです。 【reservecalender.php】 <head> <script type="text/javascript"> //<![CDATA[ var nowYear; var nowMonth; var nowDate; var nowLimitDay; var nowTag1; var nextTag1; var selectMonth; function onReady(){ var nowDate = new Date(); wkYear = nowDate.getYear(); //年 nowYear = (wkYear < 2000) ? wkYear+1900 : wkYear ; //月 nowMonth = nowDate.getMonth()+1; //日 nowDate = nowDate.getDate(); //今月の日数 nowLimitDay = new Date(nowYear, nowMonth, 0).getDate(); //日付用オプションタグ nowTag1 = ""; nextTag1 = ""; //選択中の月 selectMonth = 0; //プルダウン1日付、デフォ+3 pull1D = nowDate + 3; //次の月のどこまで日付を選べるか fitThirty = 30 - (nowLimitDay - pull1D) //月のオプション monthTag = '<option value=' + nowMonth + '>' + nowMonth + '月</option>'; if (nowMonth != 12) { monthTag += '<option value=' + (nowMonth+1) + '>' + (nowMonth+1) + '月</option>'; } //今月の日付オプション for (i = pull1D; i <= nowLimitDay; i++) { nowTag1 += '<option value="' + i + '">' + i + '日</option>'; } //来月の日付オプション for (i = 1; i <= fitThirty; i++) { nextTag1 += '<option value="' + i + '">' + i + '日</option>'; } document.getElementById("year1").innerHTML = nowYear + "年"; document.getElementById("year2").innerHTML = nowYear + "年"; document.getElementById("pull1M").innerHTML = monthTag; document.getElementById("pull2M").innerHTML = monthTag; document.getElementById("pull1D").innerHTML = nowTag1; document.getElementById("pull2D").innerHTML = nowTag1; } function changeDay(){ selectObj = document.getElementById("pull1D"); options = document.getElementById("pull1D").options; selectDay = options.item(selectObj.selectedIndex).value; selectDay++; selectDay--; setTag = ""; if (selectMonth == 0) { setTag = nowTag1; } else { setTag = nextTag1; } wkPos = setTag.indexOf('<option value="' + (selectDay+1) + '">' + (selectDay+1) + '日</option>', 0); chageDayTag = '<option value="' + selectDay + '" selected>' + selectDay + '日</option>' + setTag.substr(wkPos); document.getElementById("pull2D").innerHTML = chageDayTag; } function changeMonth1(){ setTag = ""; if (selectMonth == 0) { setTag = nextTag1; changeMonth(nowMonth+1); selectMonth = 1; } else { setTag = nowTag1; changeMonth(nowMonth); selectMonth = 0; } document.getElementById("pull1D").innerHTML = setTag; document.getElementById("pull2D").innerHTML = setTag; } function changeMonth2(){ if (selectMonth == 0) { selectObj = document.getElementById("pull2D"); options = document.getElementById("pull2D").options; selMonth2 = options.item(selectObj.selectedIndex).value; if (nowMonth == selMonth2) { document.getElementById("pull2D").innerHTML = nextTag1; } else { document.getElementById("pull2D").innerHTML = nowTag1; } } else { changeMonth(nowMonth+1); } } function changeMonth(selMonth){ optObj = document.getElementById("pull2M").getElementsByTagName('option'); for (i = 0; i < optObj.length; i++) { if (optObj[i].value == selMonth) { optObj[i].selected = true; break; } } } //]]> </script> </head> <body onload="onReady()"> <div id="box"> <form name="reservedateform" action="reserveselect.php" method="post"> <div id="year1"></div> / <select id="pull1M" onchange="changeMonth1()"></select> / <select id="pull1D" onchange="changeDay()"></select> <div id="year2"></div> / <select id="pull2M" onchange="changeMonth2()"></select> / <select id="pull2D"></select> <input type="hidden" name="checkin" value="1 つ目の年月日" /> <input type="hidden" name="checkout" value="2 つ目の年月日" /> <input type="submit" value="go" /> </form> </body> 【reserveselect.php】 if ($_SERVER["REQUEST_METHOD"] == "POST"){ $checkin = htmlspecialchars($_POST["checkin"], ENT_QUOTES); $checkout = htmlspecialchars($_POST["checkout"], ENT_QUOTES); } また、年月日の値を"2013-03-13"のように変換して格納するにはどうすれば良いでしょうか?? 質問ばかりですみません…。 どなたかご回答頂けるとありがたいです。

    • ベストアンサー
    • PHP
  • Javascriptによるフォームの選択表示について教えてください。

    Javascriptによるフォームの選択表示について教えてください。 概要としてはカートCGIのお客様情報入力欄のカスタマイズを行なっています。 別の場所への発送を希望される場合において(1)、(2)、(3)のラジオボタンを作り、それぞれ選択によって該当のフォームを表示するところまではできました。 問題は、(1)→1箇所、(2)→3箇所、(3)→5箇所とフォームを作ったところ、入力ページが表示された時点で(1)(2)(3)全ての表示がされた状態で表示されます。 ちなみに、その際にラジオボタンを選択すると(1)(2)(3)それぞれに対応したフォームが表示され切り替わります。 実際にやりたいことは、ページが表示された時点で(1)のフォームのみ表示されるようにし、(2)(3)とラジオボタンを選択された際にそこで初めて(2)(3)のそれぞれのフォームを表示したいと思っています。 以下はソースです。 ■Javascript <script type="text/javascript"> function func1() { document.getElementById("sele1").style.display="inline"; document.getElementById("sele1").disabled=false; document.getElementById("sele2").style.display="none"; document.getElementById("sele2").disabled=true; document.getElementById("sele3").style.display="none"; document.getElementById("sele3").disabled=true; } function func2() { document.getElementById("sele1").style.display="none"; document.getElementById("sele1").disabled=true; document.getElementById("sele2").style.display="inline"; document.getElementById("sele2").disabled=false; document.getElementById("sele3").style.display="none"; document.getElementById("sele3").disabled=true; } function func3() { document.getElementById("sele1").style.display="none"; document.getElementById("sele1").disabled=true; document.getElementById("sele2").style.display="none"; document.getElementById("sele2").disabled=true; document.getElementById("sele3").style.display="inline"; document.getElementById("sele3").disabled=false; } </script> ■CGI(HTML)側 <form action="xxx"> <table border=0 cellpadding=5 cellspacing=2 width=500> <p>発送先が2箇所以上の場合はこちらから選択ください。 <input type="radio" value="1" onclick="func1('block')" />1箇所</label> <input type="radio" value="2" onclick="func2('none')" />2箇所</label> <input type="radio" value="3" onclick="func3('none')" />5箇所</label> </p> </table> <table id="sele1"> </table> <table id="sele2"> </table> <table id="sele3"> </table> </form> table内容は省略しています。 説明が下手ですがどうかご教授ください。宜しくお願いします。

このQ&Aのポイント
  • 初期パスワードが入力できない場合、特定の製品においてはパスワードの変更方法が異なることがあります。お使いの環境や接続方法などを詳しく教えてください。
  • パスワードの変更に関するトラブル解決のための情報を提供します。パソコンやスマートフォンのオペレーティングシステムや接続状況によって、対応方法が異なることがあります。
  • この質問はブラザー製品に関するものです。ブラザー製品のパスワード変更に関する疑問や問題をお持ちの方は、詳細な情報をご提供ください。
回答を見る