jcctaira の回答履歴

全261件中21~40件表示
  • EXCEL→SQL VBAを簡略化したい

    EXCELのVBAを使って、SQLサーバーに接続し、 データテーブルを開き、データを200個(xが100個、yが100個) 書き込みさせたいプログラムを作っています。 強引に1つ1つ書き込みし、200個登録は出来たのですが、 もっとプログラムを簡略化したいと思います。 以下に内容をしめします。 ------------------------------------------- 'SQLデータベースに接続 Set rs = CreateObject("ADODB.RecordSet") Set CN = CreateObject("ADODB.Connection") CN.ConnectionString = "Driver={SQL Server};" & _ "server=○○○.○○.○○.○○; database=DB ; uid=ID; pwd=1234;" CN.Open '-----[Dataテーブル] ----- Set rs = New Recordset rs.Open "Data", CN, adOpenKeyset, adLockOptimistic '[Dataテーブル]に書込み rs.AddNew Worksheets("Sheet1").Select '☆☆☆ rs!x1 = Cells(10, 5).Value rs!x2 = Cells(11, 5).Value rs!x3 = Cells(12, 5).Value rs!x4 = Cells(13, 5).Value    ・    ・     ・    ・ rs!x100 = Cells(109, 5).Value rs!y1 = Cells(10, 7).Value rs!y2 = Cells(11, 7).Value rs!y3 = Cells(12, 7).Value rs!y4 = Cells(13, 7).Value    ・    ・     ・    ・ rs!y100 = Cells(109, 7).Value '☆☆☆ '保存 rs.Update MsgBox "追加しました" '後処理 rs.Close: Set rs = Nothing CN.Close: Set CN = Nothing '終了処理 Set rs = Nothing Set CN = Nothing ------------------------------------------- '☆☆☆で挟まれた部分を繰り返し文で簡潔にプログラミングしたいです。 自分が考えた以下の分では、エラーが出てしまいました。   i = 1   n = 10 Do While i < 100    rs!x"& i &" = Cells(n, 5)    rs!y"& i &" = Cells(n, 7)   i = i + 1   n = n + 1 Loop よりシンプルな構文にしたいと思います。 お手数おかけいたしますが、わかる方いらっしゃいましたら 教えて下さい。

  • EXCEL→SQL VBAを簡略化したい

    EXCELのVBAを使って、SQLサーバーに接続し、 データテーブルを開き、データを200個(xが100個、yが100個) 書き込みさせたいプログラムを作っています。 強引に1つ1つ書き込みし、200個登録は出来たのですが、 もっとプログラムを簡略化したいと思います。 以下に内容をしめします。 ------------------------------------------- 'SQLデータベースに接続 Set rs = CreateObject("ADODB.RecordSet") Set CN = CreateObject("ADODB.Connection") CN.ConnectionString = "Driver={SQL Server};" & _ "server=○○○.○○.○○.○○; database=DB ; uid=ID; pwd=1234;" CN.Open '-----[Dataテーブル] ----- Set rs = New Recordset rs.Open "Data", CN, adOpenKeyset, adLockOptimistic '[Dataテーブル]に書込み rs.AddNew Worksheets("Sheet1").Select '☆☆☆ rs!x1 = Cells(10, 5).Value rs!x2 = Cells(11, 5).Value rs!x3 = Cells(12, 5).Value rs!x4 = Cells(13, 5).Value    ・    ・     ・    ・ rs!x100 = Cells(109, 5).Value rs!y1 = Cells(10, 7).Value rs!y2 = Cells(11, 7).Value rs!y3 = Cells(12, 7).Value rs!y4 = Cells(13, 7).Value    ・    ・     ・    ・ rs!y100 = Cells(109, 7).Value '☆☆☆ '保存 rs.Update MsgBox "追加しました" '後処理 rs.Close: Set rs = Nothing CN.Close: Set CN = Nothing '終了処理 Set rs = Nothing Set CN = Nothing ------------------------------------------- '☆☆☆で挟まれた部分を繰り返し文で簡潔にプログラミングしたいです。 自分が考えた以下の分では、エラーが出てしまいました。   i = 1   n = 10 Do While i < 100    rs!x"& i &" = Cells(n, 5)    rs!y"& i &" = Cells(n, 7)   i = i + 1   n = n + 1 Loop よりシンプルな構文にしたいと思います。 お手数おかけいたしますが、わかる方いらっしゃいましたら 教えて下さい。

  • ie操作 フレームのURLがあってるか取得したい

    http://okwave.jp/qa/q8135136.html こちらのANo.2様のご意見を参考に、フレーム操作について調べているのですが、 サンプルを作ってみたのですが、うまくできません。 サンプルの内容としては、URLの中のフレームのオブジェクトを変数に格納し、 その格納したオブジェクトのURLをメッセージボックスに表示し、 欲しいURLかどうかを目視で確認したいのですが Dim objIE As InternetExplorer Sub Sample001() Dim myObj As Object Dim objFr As Object Set objIE = CreateObject("InternetExplorer.Application") objIE.Visible = True objIE.navigate "http://masaboo.cside.com/new_html1/ht_sun/frame02.htm" Stop Set objFr = objIE.document.frames.Item(1) MsgBox objFr.document.frames.LocationURL Set objIE = Nothing End Sub MsgBox objFr.document.frames.LocationURL だと、実行時エラー438になります。 MsgBox objFr.document.LocationURLもMsgBox objFr.LocationURLもダメでした。 私は何か根本的に勘違いをしているような気がしますが、格納したフレームのURLを表示する方法があれば教えてください。 ご教授よろしくお願いします。

  • 英文を(  )入の文に変えたい。

    A列に英文データがあります。 Many people climb Mt. Fuji every year. The summer during the 25th of July to 25th of August are the official climbing season. B列、C列に次のような(  )入の文を作成したいのです。(   )の中には置き換えた単語の最初の1文字を入れたい。B列とC列は(   )が交互になります。 英文の暗記用に手で入力していましたが、英文が増えてきましたので、エクセルVBAでうまくできないかお尋ねします。 よろしくお願いします。 B列 Many (p  ) climb (M  ) every (y  ). The (s  ) during (t  ) 25th (o  ) July (t  ) 25th (o  ) August (a  ) the (o  ) climbing (s  ). C列 (M  ) people (c  ) Mt. Fuji (e  ) year. (T  ) summer (d  ) the (2 ) of (J  ) to (2  ) of (A  ) are (t ) official (c   ) season.

  • COUNTIF 大文字小文字、全角半角もカウント

    COUNTOIFで個数をだすのに大文字小文字、全角半角が混じっているので 両方カウントしてほしい。 =COUNTIF(sheet1!$B$3:$B100,$A1) でカウントしています。 A1 あ1 B3 あ1 B4 あ1

  • select case 大文字小文字を区別しないよ

    select case 大文字小文字を区別しないようにするには? Sub test01() Dim str As String str = "A" Select Case str Case "a" MsgBox "aです" Case "A" MsgBox "aです" End Select End Sub これだと、半角全角がヒットしないのはなんとなくしょうがないかな、と思うのですが 大文字小文字がちがくてもヒットさせるにはどうすればいいですか? Sub test01() Dim str As String str = "A" Select Case str Case "a", "A" MsgBox "aです" End Select End Sub とするしかないでしょうか? 大文字小文字区別なく評価する方法があれば教えてください。よろしくお願いします。

  • vbaでnanacoにログイン(ie操作)

    私は「緑のパスワードがなくnanacoをお持ちの方」です。 カード記載の番号にはvbaで値を入れることはできるのですが、 nanaco番号に値を入れることとログインボタンを押すことができません。 ********************************************** Sub nanaco() Dim objIE As InternetExplorer Dim myObj As Object Set objIE = CreateObject("InternetExplorer.Application") objIE.Visible = True objIE.navigate "https://www.nanaco-net.jp/pc/emServlet" Do While objIE.Busy = True DoEvents Loop Do While objIE.document.readyState <> "complete" DoEvents Loop objIE.document.all("XCID").Value = "12345" objIE.document.all("SECURITY_CD").Value = "Password" For Each myObj In objIE.document.forms(0).all If TypeName(myObj) = "HTMLInputElement" Then If myObj.alt = "ログイン" Then myObj.Click Exit For End If End If Next Set objIE = Nothing End Sub ********************************************** これだとまずall("XCID").Value でエラーになります。 ソースでは、 <input name="XCID" tabIndex="1" class="txtBoxLogin" accessKey="1" type="text" maxLength="16" value=""/> となっておりますが、同じコードが二つあるからエラーになるのでしょうか? all("SECURITY_CD").Value は問題なくできます。 ソースにも、SECURITY_CDは一つしかないです。 次にログインボタンも二つあるのですが、 For Each myObj In objIE.document.forms(0).all If TypeName(myObj) = "HTMLInputElement" Then If myObj.alt = "ログイン" Then myObj.Click Exit For End If End If Next このコードを実行すると、多分上の方のログインボタンが押されてるようです。 なので、 Dim 二つ目 As Boolean For Each myObj In objIE.document.forms(0).all If TypeName(myObj) = "HTMLInputElement" Then If myObj.alt = "ログイン" Then If 二つ目 = True Then myObj.Click Exit For End If 二つ目 = True End If End If Next に変更してみたのですが、 どうやら If myObj.alt = "ログイン" Then になるのは、1回しかないようです。 うーん、うまくできません。 ご教授よろしくお願いします。

  • ie操作について教えてください

    vbaで alt="口座情報" をクリックしたいのですが、うまく押せません。 ソースの一部は ****************************************************** <form name="frmSubmit"> <map id="Map" name="Map"> <area title="お問い合わせ 0120-456-858" onclick="return OpenLink();" href="javascript:void(0);" shape="rect" alt="お問い合わせ 0120-456-858" coords="273,13,463,40"> <!--area shape="rect" coords="426,13,469,40" alt="TOP" href="javascript:void(0);" onclick="return SubmitTask('RT', 'WEL', '00', '100', '');"--> <area title="FAQ" onclick="return GetLinks();" href="javascript:void(0);" shape="rect" alt="FAQ" coords="487,13,529,40"> <area title="ヘルプ" onclick="return CallForHelp();" href="javascript:void(0);" shape="rect" alt="ヘルプ" coords="547,13,598,40"> <area title="ログアウト" onclick="return SubmitTask('RT', 'CDC', '49', '', '');" href="javascript:void(0);" shape="poly" alt="ログアウト" coords="612,17,687,17,689,19,689,34,687,36,612,36,610,34,610,19"> <area title="口座情報" onclick="return SubmitTask('RT', 'ACS', '00', '23', 'frmCurrencyAndBal');" href="javascript:void(0);" shape="poly" alt="口座情報" coords="87,79,0,79,0,61,2,56,5,53,82,53,85,56,87,60"> <area title="振込・振替" onclick="return SubmitTask('RT', 'CDC', '09', '', '');" href="javascript:void(0);" shape="poly" alt="振込・振替" coords="191,79,91,79,91,64,93,59,96,56,184,56,188,58,191,62"> <area title="資産運用" onclick="return SubmitTask('RT', 'CDC', '08', '', '');" href="javascript:void(0);" shape="poly" alt="資産運用" coords="284,79,195,79,195,64,197,59,200,56,279,56,283,60,284,63"> <area title="ローン" onclick="return SubmitTask('RT', 'HLI', '00', '100', '');" href="javascript:void(0);" shape="poly" alt="ローン" coords="355,79,288,79,288,64,290,59,295,56,341,56,350,56,355,63"> <area title="レート照会" onclick="return SubmitTask('RT', 'CDC', '10', '', '');" href="javascript:void(0);" shape="poly" alt="レート照会" coords="462,79,360,79,360,64,362,59,365,56,454,56,460,59,462,63"> <area title="お客さまサポート" onclick="return SubmitTask('RT', 'CDC', '11', '', '');" href="javascript:void(0);" shape="poly" alt="お客さまサポート" coords="607,79,465,79,465,64,467,59,472,56,600,56,605,58,607,63"> </map> </form> ****************************************************** です。 '1個目の実験***************** For Each myobj In objIE.Document.all.tags("area") If TypeName(myobj) = "HTMLInputElement" Then If myobj.alt = "口座情報" Then myobj.Click Exit For End If End If Next '2個目の実験***************** For Each myobj In objIE.Document.all.tags("form") If TypeName(myobj) = "HTMLInputElement" Then If myobj.alt = "口座情報" Then myobj.Click Exit For End If End If Next '3個目の実験***************** Dim objIMG As HTMLImg Dim objDOC As HTMLDocument Set objDOC = objIE.Document For i = 0 To objDOC.images.Length - 1 Set objIMG = objDOC.images(i) If objIMG.alt = "口座情報" Then objIMG.Click End If Next '4個目の実験***************** For Each myobj In objIE.Document.all.tags("form") '↓で実行時エラー'438 オブジェクトはこのプロパティまたは メソッドをサポートしていません If myobj.alt = "口座情報" Then myobj.Click Exit For End If Next '5個目の実験***************** 'ひっかからない For Each myobj In objIE.Document.all.tags("area") If myobj.alt = "口座情報" Then myobj.Click Exit For End If Next をやってみたのですが、 どれも引っかからないです。 画像の「口座情報」をクリックしたいのです。ログインはvbaでできました。 どうすればいいでしょうか!? ご教授よろしくお願いします。

  • Excel VBA 決まった文字以外を一括削除

    勤務表を作成しています。 赤いセル「/。」は、希望休です。 勤務表の組み直しを行うため、希望休以外を一括で削除して空白にしたいのですが、そのようなマクロを組む事はできますか? 色で判別するよりも、入力してある文字「/。」で判別して、それ以外に入力してある文字を削除できるようにしたいです。

  • ie操作について教えてください

    vbaで alt="口座情報" をクリックしたいのですが、うまく押せません。 ソースの一部は ****************************************************** <form name="frmSubmit"> <map id="Map" name="Map"> <area title="お問い合わせ 0120-456-858" onclick="return OpenLink();" href="javascript:void(0);" shape="rect" alt="お問い合わせ 0120-456-858" coords="273,13,463,40"> <!--area shape="rect" coords="426,13,469,40" alt="TOP" href="javascript:void(0);" onclick="return SubmitTask('RT', 'WEL', '00', '100', '');"--> <area title="FAQ" onclick="return GetLinks();" href="javascript:void(0);" shape="rect" alt="FAQ" coords="487,13,529,40"> <area title="ヘルプ" onclick="return CallForHelp();" href="javascript:void(0);" shape="rect" alt="ヘルプ" coords="547,13,598,40"> <area title="ログアウト" onclick="return SubmitTask('RT', 'CDC', '49', '', '');" href="javascript:void(0);" shape="poly" alt="ログアウト" coords="612,17,687,17,689,19,689,34,687,36,612,36,610,34,610,19"> <area title="口座情報" onclick="return SubmitTask('RT', 'ACS', '00', '23', 'frmCurrencyAndBal');" href="javascript:void(0);" shape="poly" alt="口座情報" coords="87,79,0,79,0,61,2,56,5,53,82,53,85,56,87,60"> <area title="振込・振替" onclick="return SubmitTask('RT', 'CDC', '09', '', '');" href="javascript:void(0);" shape="poly" alt="振込・振替" coords="191,79,91,79,91,64,93,59,96,56,184,56,188,58,191,62"> <area title="資産運用" onclick="return SubmitTask('RT', 'CDC', '08', '', '');" href="javascript:void(0);" shape="poly" alt="資産運用" coords="284,79,195,79,195,64,197,59,200,56,279,56,283,60,284,63"> <area title="ローン" onclick="return SubmitTask('RT', 'HLI', '00', '100', '');" href="javascript:void(0);" shape="poly" alt="ローン" coords="355,79,288,79,288,64,290,59,295,56,341,56,350,56,355,63"> <area title="レート照会" onclick="return SubmitTask('RT', 'CDC', '10', '', '');" href="javascript:void(0);" shape="poly" alt="レート照会" coords="462,79,360,79,360,64,362,59,365,56,454,56,460,59,462,63"> <area title="お客さまサポート" onclick="return SubmitTask('RT', 'CDC', '11', '', '');" href="javascript:void(0);" shape="poly" alt="お客さまサポート" coords="607,79,465,79,465,64,467,59,472,56,600,56,605,58,607,63"> </map> </form> ****************************************************** です。 '1個目の実験***************** For Each myobj In objIE.Document.all.tags("area") If TypeName(myobj) = "HTMLInputElement" Then If myobj.alt = "口座情報" Then myobj.Click Exit For End If End If Next '2個目の実験***************** For Each myobj In objIE.Document.all.tags("form") If TypeName(myobj) = "HTMLInputElement" Then If myobj.alt = "口座情報" Then myobj.Click Exit For End If End If Next '3個目の実験***************** Dim objIMG As HTMLImg Dim objDOC As HTMLDocument Set objDOC = objIE.Document For i = 0 To objDOC.images.Length - 1 Set objIMG = objDOC.images(i) If objIMG.alt = "口座情報" Then objIMG.Click End If Next '4個目の実験***************** For Each myobj In objIE.Document.all.tags("form") '↓で実行時エラー'438 オブジェクトはこのプロパティまたは メソッドをサポートしていません If myobj.alt = "口座情報" Then myobj.Click Exit For End If Next '5個目の実験***************** 'ひっかからない For Each myobj In objIE.Document.all.tags("area") If myobj.alt = "口座情報" Then myobj.Click Exit For End If Next をやってみたのですが、 どれも引っかからないです。 画像の「口座情報」をクリックしたいのです。ログインはvbaでできました。 どうすればいいでしょうか!? ご教授よろしくお願いします。

  • Excel VBA 決まった文字以外を一括削除

    勤務表を作成しています。 赤いセル「/。」は、希望休です。 勤務表の組み直しを行うため、希望休以外を一括で削除して空白にしたいのですが、そのようなマクロを組む事はできますか? 色で判別するよりも、入力してある文字「/。」で判別して、それ以外に入力してある文字を削除できるようにしたいです。

  • VBA初心者です。教えてください

    エクセルで次の式を作ってみました。表示対象はK15のセルです。 =IF(K14="","",IF(AND(K13="○",K14<=0.00000001),"A", IF(AND(K13="○",K14>=0.00000001,K14<=0.0000099),"B", IF(AND(K13="△",K14>=0.00000001,K14<=0.0000099),"D", IF(AND(K13="○",K14>=0.00001,K14<=0.0002),"C", IF(AND(K13="○",K14>=0.0002,K14<=0.099),"D", IF(AND(K13="△",K14>=0.0002,K14<=0.077),"D", IF(K13="×","E","D"))))))))  この数式をVBAで記述したいのですが、どなたか教えてください。 希望1 K13,14の値を変更するたびに反映されるようにしたいと思っております。 希望2 K~Mまでの範囲も指定したいです。 宜しくお願いします。

  • 「パスが見つかりません」というエラー

    data.txtにセルの入力内容を出力したくて下記のようなプログラムを書きました。 ところが Open StrFN For Output As #IntFlNo のところで パスが見つかりません というエラーが出てしまいます。原因はわかりますでしょうか。 Sub test() Dim StrFN As String Dim i As Long Dim IntFlNo As Integer StrFN = "c\data.txt" IntFlNo = FreeFile Open StrFN For Output As #IntFlNo For i = 2 To 400000 Write #IntFlNo, Cells(i, 1) & "$" & Cells(i, 2) Next i Close #IntFlNo End Sub

  • VBAで全ての受信トレイの数ではなく受信メールの数

    VBAで全ての受信トレイの数ではなく受信メールの数を取得する方法は? Sub めーる数() Dim myNaSp As NameSpace Dim myFolder As MAPIFolder Set myNaSp = GetNamespace("MAPI") Set myFolder = myNaSp.GetDefaultFolder(olFolderInbox) Debug.Print myFolder.Items.Count Set myNaSp = Nothing Set myFolder = Nothing End Sub このコードだと、「受信トレイ」のメールの数しか取得できません。 フォルダは画像のように、サブフォルダがあります。 この場合、全ての受信メール(受信トレイ+サブフォルダ)の数を取得するにはどうすればいいでしょう?

  • ActiveWorkbook.Pathの一つ上

    ActiveWorkbook.Pathの一つ上のパスを取得する方法はありますか? 例えば、現在のエクセルブックが入っているパスが C:\Users\ユーザー名\Documents だった場合、 ActiveWorkbook.Pathをすると、上記のパスが取得されますが、 VBAコードで「C:\Users\ユーザー名」までを取得する方法はありますか? Dim strPathName As String strPathName = ActiveWorkbook.Path strPathName = Replace(strPathName, "\Documents", "") こうするしかないですか?

  • vbaのお仕事 スキル 知識

    vbaが募集条件の仕事に申し込もうと思うのですがクラスモジュールについてよくわかりません。 勉強してみようと思いましたが敷居が高くてよくわかりませんでした。 エクセルvba、アクセスvbaでそれなりに自分のやりたい事をできる程度なのですが 時給1600円位の派遣のお仕事でvbaスキル必須のお仕事に申し込むのは無謀なのでしょうか?

  • サイトのソースのsubmitボタンの数を取得したい

    サイトのソースのsubmitボタンの数を取得したいのですが Sub test() Dim objIE As InternetExplorer Dim MyRow As Long Set objIE = CreateObject("InternetExplorer.Application") objIE.Visible = True objIE.Navigate "http://www.coneco.net/" Do While objIE.Busy = True Or objIE.ReadyState <> 4 DoEvents Loop Debug.Print objIE.Document.all.tags("input").Type("submit").Count Set objIE = Nothing End Sub だとうまく動きません。 どう、変更すればよろしいですか?

  • シートが文字列で並び替えられて困っています。

    エクセル2003を使用しています。 シートの並びについて、文字列(名前順)ではなく、数値順に並び替えたいのですが、 どのようなマクロを組めば良いのでしょうか? ↓これですと、シートの並びが文字列(名前順)になってしまうので、ダメなんです。 ------------------------------- Sub Sort() Dim intLoopA As Integer Dim intLoopB As Integer For intLoopA = 1 To Sheets.Count For intLoopB = 1 To Sheets.Count - 1 If Sheets(intLoopB).Name > Sheets(intLoopB + 1).Name Then Sheets(intLoopB).Move After:=Sheets(intLoopB + 1) End If Next intLoopB Next intLoopA End Sub ------------------------------- 例として、 01.午前中/02.午後/100/300/50/テスト ではなく、 理想型は 01.午前中/02.午後/50/100/300/テスト の順番です。 シート名に番号+日本語を付けているのがあるのは、数字の並び順になって欲しい対策です。 分かりやすくするために簡略化いたしましたが、 実際は300ほどのシートがバラバラに出入りし、それらは連番ではありません。 数値順にするvbaをよろしければ教えて頂けませんでしょうか。 よろしくお願いいたします。

  • エクセルでこんな処理可能ですか

    エクセル初心者です。リアルタイムで変化する株価の分析で利用しようと思っています。 ある銘柄の一分毎の価格データからグラフを作ろうとしたら一分毎の価格情報を全て一つ一つの セル(例 9:00 10000円をA1 9:01 10010円をA2 9:02 10015円をA3・・・)と取り込んで からでないとグラフはできないのでしょうか。それとも 一分毎に変化する価格情報を一つのセル (例 9:00 10000円 9:01 10010円 9:02 10015円・・・・を全てA1セル)で取り込まれるデータを グラフ化処理できるのでしょうか。全て異なるセルに取り込んでデータベース化すれば当然グラフ等の処理は可能でしょうが処理するためにCPUへの負荷等が上がってしまうと思うのですが。 マクロでの処理が可能なのかもご教授していただけたらうれしいです。お願いします。

  • エクセルでこんな処理可能ですか

    エクセル初心者です。リアルタイムで変化する株価の分析で利用しようと思っています。 ある銘柄の一分毎の価格データからグラフを作ろうとしたら一分毎の価格情報を全て一つ一つの セル(例 9:00 10000円をA1 9:01 10010円をA2 9:02 10015円をA3・・・)と取り込んで からでないとグラフはできないのでしょうか。それとも 一分毎に変化する価格情報を一つのセル (例 9:00 10000円 9:01 10010円 9:02 10015円・・・・を全てA1セル)で取り込まれるデータを グラフ化処理できるのでしょうか。全て異なるセルに取り込んでデータベース化すれば当然グラフ等の処理は可能でしょうが処理するためにCPUへの負荷等が上がってしまうと思うのですが。 マクロでの処理が可能なのかもご教授していただけたらうれしいです。お願いします。