『Visual Basic』に関する質問・疑問一覧

関連カテゴリ

次へ  ]
100件中 1~20件目
  • VBSとVBAの違いはなんですか?

    VBScriptとVBAは何が違いますか? 教えてくださいよろしくお願いします。

    2017/09/20 21:03
  • 「タイプ初期化子が例外をスローしました」エラー何?

    ネット検索で調べましたが、どうしてもわからないので、質問いたします。 VB2010ですが、デバッグで起動すると「タイプ初期化子が例外をスローしました」というエラーが出てしまい、プログラムが起動しません。 ご教授のほどよろしくお願いいたします。 1.スタートアップフォーム    ○frmMENU    ○LOADするときに標準モジュールを呼び出します。     その呼び出し文でエラーになります。 Private Sub frmMENU_Load(ByVal eventSender As System.Object, ByVal eventArgs As  System.EventArgs) Handles MyBase.Load gINIT()  ← ここでエラーになります Me.Text = gSysName Show() End Sub 2.標準モジュール Public Sub gINIT() gSysName = "システム" DS = "Provider=""Microsoft.Jet.OLEDB.4.0"";" DS &= "Data Source=""" gMDB = "C:\MDB\ABC.MDB""" End Sub

    2011/06/06 16:27
  • 【VB】セルが空になるまで処理を繰り返したい

    Excel VBAを使用してです。 列Aにデータがずらっと入っています。 そのデータを列Bに、 Do while ~loop か Do until ~loopを使って データが無くなるまでコピーするという処理を書きたいのです。 VB歴が浅いためひらめきません。よろしくお願いします。m(__)m

    2005/11/15 10:46
  • IE9のダウンロード通知バーのVBからの操作

    IE9(Internet Explorer 9)でのファイルダウンロード時に表示される「通知バー」をVBAを利用して操作(ダウンロードボタンの押下)を行いたいと考えています。 http://okwave.jp/qa/q8035721.html こちらの質問を参考にして、自分の環境がWindows8 Office 2010 standard 64-bitなので、API宣言部分を変更するなどしてみたのですが、構文エラーとなってしまいます。 どなたか上記の記事のコードを64-bit版でも稼動する方法をご教示頂けないでしょうか

    2013/06/06 13:55
  • DataGridViewで、選択した行の値を取得し...

    VB2005環境です。 VB2005で、選択した行の、特定の列から値を取って、 テキストボックスに出力したいと思っています。 Itemプロパティかと思い、 TxtBox1.Text = Me.DataGridView1.Item _(0,Me.DataGridView1.CurrentRow.Index).ToString と記述してみました。1列目の、選択した行と交わるセルの 値が取れるかと思いきや、うまく取得できません。 方法を教えていただけないでしょうか? よろしくお願いします。

    2007/09/13 17:33
  • VBAでB列とD列を入れ替える

    VBAでA列に入力されてるをD列にしたりB列をE列に・・・など入れ替えたいのですが どういう方法をとればいいのでしょうか。 両方空白じゃないのでコピー貼りつけだとできないです。

    2013/03/06 10:23
  • FileSystemObjectのGetFolde...

    お世話になっております。 Access2002VBAを使用しております。 サンプルを以下に示します。 '------------------------ Set FS = CreateObject("Scripting.FileSystemObject") Set obF = FS.GetFolder(RD & ":\" & RP) Set colF = obF.Files For Each F In colF '各ファイルアクセス Next Set FS = Nothing Set obF = Nothing Set colF = Nothing Set F = Nothing '------------------------ 特定のフォルダ内の全ファイルをアクセスする プログラムを作成しております。 この際、ファイル名の昇順、もしくは作成年月日、更新年月日の昇順にファイルをアクセスしたいのですが、 FileSystemObjectを使用して、ファイルを順当に取得する 方法がわかりません。 もしそのような方法がなければ、 配列にファイル名、年月日を入れて、 擬似的に並べ替えをおこなうか、 作業用テーブルにファイル名、年月日を入れて、 order by で取得しなおして、順当にファイルアクセス とおもっております。 FileSystemObjectのGetFolderメソッドで 取得できるファイルは何の順番で取得されるのでしょうか。 また何れか、もしくはその他よい方法等がございましたら、 ご教授いただきたいと存じます。 よろしくお願いいたします。

    2003/07/28 10:33
  • SAPデータ取得 エクセルVBA

    いつもここでお世話になっております。 次のサイトで掲載されていたVBAで、SAPのデータ(テーブルデータ)をエクセルで取得することができることがわかりましたが、例えばですがSQLを利用するようなVBAを追記して、任意のフィールド、任意のデータを指定して、それに合致するものだけをエクセルに表示させることはできないでしょうか(イメージとして、SELECT フィールド FROM QUERY_TABLE WHERE データのような感じ)。 何度も試行錯誤をしたのですが、うまくいきません。なにとぞよろしくお願い申し上げます。 ※SAPテーブル取得のエクセルVBA : http://d.hatena.ne.jp/sikakura/20100702/1278053742 -ーーー【以下、テーブルデータ取得のためにVBA】---- Sub ログインR3_LOGON() Set R3 = CreateObject("SAP.Functions") 'R3.Connection.System = "172.31.220.42" 'R3.Connection.client = "100" 'R3.Connection.User = "SAP*" 'R3.Connection.Password = "" 'R3.Connection.Language = "EN" '自動ログインする場合は、Connection.Logon(0,True)にして、 '上のパラメータを設定すればOK. If R3.Connection.Logon(0, False) <> True Then MsgBox "ログインを中止しました" Exit Sub End If 'IMPORTパラメータ Dim QUERY_TABLE As Object Dim DELIMITER As Object Dim NO_DATA As Object Dim ROWSKIPS As Object Dim ROWCOUNT As Object '条件式 Dim OPTIONS As Object Dim FIELDS As Object 'データ Dim DATA As Object '結果保持用 Dim ROW As Object Dim Result As Boolean Dim iRow, iColumn, iStart, iStartRow, iField, iLength As Variant '***************************************************** 'RFC_READ_TABLEを指定します '***************************************************** Set MyFunc = R3.Add("RFC_READ_TABLE") Set QUERY_TABLE = MyFunc.exports("QUERY_TABLE") Set DELIMITER = MyFunc.exports("DELIMITER") Set NO_DATA = MyFunc.exports("NO_DATA") Set ROWSKIPS = MyFunc.exports("ROWSKIPS") Set ROWCOUNT = MyFunc.exports("ROWCOUNT") Set DATA = MyFunc.Tables("DATA") Set OPTIONS = MyFunc.Tables("OPTIONS") Set FIELDS = MyFunc.Tables("FIELDS") QUERY_TABLE.Value = "CSKT" DELIMITER.Value = " " NO_DATA = " " ROWSKIPS = 0 ROWCOUNT = 0 Result = MyFunc.Call If Result = True Then Set DATA = MyFunc.Tables("DATA") Set FIELDS = MyFunc.Tables("FIELDS") Set OPTIONS = MyFunc.Tables("OPTIONS") Else MsgBox MyFunc.EXCEPTION Exit Sub End If '列名をExcelシートに出力 For iField = 1 To FIELDS.ROWCOUNT Worksheets("Sheet2").Cells(1, iField).Value = FIELDS(iField, "FIELDTEXT") Next 'データをExcelシートに出力 iField = 1 For iRow = 1 To DATA.ROWCOUNT For iField = 1 To FIELDS.ROWCOUNT iStart = FIELDS(iField, "OFFSET") + 1 iLength = FIELDS(iField, "LENGTH") If iStart > Len(DATA(iRow, "WA")) Then vField = Null Else vField = Mid(DATA(iRow, "WA"), iStart, iLength) End If Worksheets("Sheet2").Cells(iRow + 1, iField).Value = vField Next Next ' **************************************************** ' Release Object ' **************************************************** Set MyFunc = Nothing Set QUERY_TABLE = Nothing Set DELIMITER = Nothing Set NO_DATA = Nothing Set ROWSKIPS = Nothing Set ROWCOUNT = Nothing Set OPTIONS = Nothing Set FIELDS = Nothing End Sub Private Function Split(ByVal inp As String, Optional delim As String = ",") As Variant Dim outarray() As Variant Dim arrsize As Integer While InStr(inp, delim) > 0 ReDim Preserve outarray(0 To arrsize) As Variant outarray(arrsize) = Left(inp, InStr(inp, delim) - 1) inp = Mid(inp, InStr(inp, delim) + 1) arrsize = arrsize + 1 Wend ReDim Preserve outarray(0 To arrsize) As Variant outarray(arrsize) = inp Split = outarray End Function ーーーーーーーーーーーーーーーーーーーーーー

    2015/10/10 00:26
  • フリーソフトのQRコードリーダー→EXCELセルへ

    QRコードリーダーの読み取り値をダイレクトにEXCELのセルへ転記したい。フリーソフトはQRコードリーダーProです。簡易的にEXCEL VBAのsendkeysによりQRコードリーダーのクリップボードデータをEXCELセルへ書き出すプログラムは成功しましたが、QRコードを読みだした後にEXCEL側のコマンドボタンによりデータを拾い出す形です。あくまで、QRコードリーダーが読みとった瞬間にEXCELのセルへデータ転記させたいのですが、何とかお考え戴けないでしょうか?

    2018/07/16 14:08
  • CSVファイルの特定列だけを呼び出し

    はじめまして。VBA初心者です。 質問させてください。 横に十列、縦に1万レコードのcsvデータがあり、このうちの2列分だけをエクセルシートに取り出すマクロが必要になりました。 外部データ呼び出し後、列を削除、というのを作ってみましたが、僕の力量不足にためか、改変ポイントがよくわかりませんでした。 opentextを使ってarrayで読み込む、というのもやってみましたが、結構時間がかかってスムーズにはいきませんでした。 ネットでさがしているうちに、読み込む列が少ないならcsvから特定の列をコピーして、それを新しいブックに貼り付け、すればいいみたいな記述をみたのですが、参考になるコードが見つかりませんでした。 そういうことは可能なんでしょうか?また、大量のデータを読み込む時に一番早い方法はどんなものでしょうか?

    2012/04/23 21:02
  • エクセルVBA実行時のエラー:DLLファイルが見つ

    タイトル:エクセルVBA実行時のエラー:DLLファイルが見つかりません  質問させていただきます。どうぞよろしくお願いいたします。 環境:PC1~3の全てが、Excel2010、Win7になります。 初めてVBAから読み込むためのDLLファイルを作成いたしました。    PC1上で動作確認できている2つのファイル(Test4.dll(VC++2013にて作成)と それを呼び出すVBAのついたエクセルファイル)を、 PC2とPC3に移動し、VBAを実行しましたところ 何故かPC3でのみ下記エラーが発生いたします。 >実行時エラー'53' >ファイルが見つかりません。Test4.dll ・2つのファイルは同じフォルダ内で実行しております。 ・VBAのカレントパスは   ChDrive Left(ThisWorkbook.Path, 1)   ChDir ThisWorkbook.Path で変更しております。  試しにC:\Windows\System32と C:\Windows\SysWow64にも Test4.dllをコピペしてみましたが、同じエラーが出てまいります。 ・PC3のみ違うところを探してみましたが、思いつくのは下記くらいでございます。   1.VSが入っておりませんでした。(必要なのでしょうか??)   2.実行しているパスが違います。     PC1とPC2の実行パス:      D:\Users\Administrator\Documents\VBA_TEST     PC3の実行パス:      D:\Documents\VBA_TEST              もし何か原因として思いつかれる事がございましたらお教えいただけないでしょうか。 お詳しい方がいらっしゃいましたら何卒よろしくお願いいたします。

    2016/02/20 23:45
  • excel vba 複数項目の集計

    EXCEL2003 VBAにてマクロを作成しているのですが、作成日程が迫っているにも関わらず、 すぐ行き詰ってしまいます。どうかご指導お願い致します。 以下のような事をしたいのですが、できる限り高速で最も効率の良い方法を教えていただきたいと 思っております。よろしくお願い致します。 あるSheetに以下のようにデータが登録されていて、 A       B        C りんご    赤       200 なし     黄色      100 りんご    緑       100 メロン    緑       10 なし     黄色      200 りんご    緑       500 これを集計すると、 りんご  赤  200 りんご  緑  600 なし   黄色 300 メロン  緑  10 と、結果を返したいと考えています。 数字を合計するのはA列とB列がともに一致した時のみです。 最初は単純に何回もForNextで処理しようと思ったのですが、行数が 多くなると繰り返し回数も多くなり、時間もかかってしまうので、 別の方法でもっといい方法があればと思い、質問させていただきました。 宜しくお願いします。

    2011/01/10 13:07
  • PDFファイルを開き、印刷し、閉じるマクロ

    Excel 2003 VBAにて、 PDFファイルを開き、印刷し、閉じるマクロを作りたいと思っています。 Dim AA, AAA AA = "C:\Program Files\Adobe\Reader 11.0\Reader\AcroRd32.exe C:\Scan\20131101160734050_001.pdf" AAA = Shell(AA, vbNormalFocus) にて、PDFファイルを開くことは出来ました。 このPDFファイルを、「印刷し、閉じる」ためには、 このPDFファイルを指定する必要があると思いますが、 その構文が判りません。 知っている方、教えて下さい。

    2013/11/14 09:32
  • テキストボックスの値をセルに反映させたい。

    はじめまして、いつもお世話になっております。 EXCEL VBAの質問です。 下記(1)(2)の質問にお答えいただきたく、お願いいたします。 (1)ユーザーフォームのテキストボックスの値をEXCELのデータが入力されている 最終行の下の空白にユーザーフォームのボタンをクリックして反映。 (2)(1)の逆で特定のセルの値をユーザーフォームのテキストボックスに反映。 色々なサイトのプロシージャをコピペしましたが、うまくいきません。 見づらいかもしれませんが、ユーザーフォームの画像を添付します。 皆様、よろしくお願いいたします。

    2017/10/02 22:33
  • VB6 Dir関数で52エラー発生

    いつもお世話になっています。 最近になって、VB6のDir関数を実行するとき、実行時エラー52が発生します。 既存のプログラムに、メール送信機能を追加しました。 このとき、BASP21をインストールしました。 これ以外のプログラムのインストールはWindowsUpdate以外はかかっていません。 皆さん、このような現象は体験されていますでしょうか? 解決策をご存知の方、ご教授願います。 BASP21が悪いのかと思い、アンインストールしましたが、現象は再現します。 VB6の再インストールをしましたが、再現します。 以上よろしくお願いします。

    2007/05/16 16:11
  • Excel VBA 定数にオブジェクトを指定したい

    Excel VBA 定数にオブジェクトを指定したい いつもお世話になりますm(__)m Excel VBAで、定数としてオブジェクトの指定はできないのでしょうか? 例えば、WorkSheets("Sheet1")を定数「Srt1」として設定したいのですが、  Public Const Srt1 As Object = Worksheets("Sheet1") としても「定数のデータ型が不正です」とエラーがでます。 例えば、セルに値をセットする時に Worksheets("Sheet1").Range("A1").Value="あああ" Worksheets("Sheet1").Range("A2").Value="いいい" Worksheets("Sheet1").Range("A3").Value="ううう" と書きますが、これを Srt1.Range("A1").Value="あああ" Srt1.Range("A2").Value="いいい" Srt1.Range("A3").Value="ううう" と書ければプログラムも見やすく、書きやすくなると思いました。 プログラムの最初に Dim Srt1 As Object Set Srt1 = Worksheets("Sheet1") とすれば使えるのですが、複数のシート名をまずは定数として登録したいと思っていますが、オブジェクト(ワークシート名)は定数として登録することは出来ないのでしょうか? お詳しいかた、是非ともご教授お願い致しますm(__)m

    2010/10/12 16:17
  • Ctrl + Cなど複数の入力キーの感知

    TextBoxでコピーや貼り付け機能などをつけようと思い。 以下のように書きましたが、うまくいきません。 さらに以下の書き方だと例えば、Shift + Zを押した時に Zの文字がテキストボックスに書き込まれてしまいます。 一般的にはどうやって複数のキー入力を感知するのが王道なんでしょうか? VBを勉強し始めたばかりで、わかりにくい説明で申し訳ないです。 Private Sub TextBox1_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles TextBox1.KeyDown   'ctrl + Zで切り取り   If e.KeyCode = Keys.Z Then    If e.Control Then     MsgBox("aa")     TextBox1.Cut()    End If   End If End Sub

    2012/02/08 20:47
  • VBS で IE ウィンドウがアクティブにならない

    Inputbox で URL 文字列の一部を打ち込むと、IE オブジェクトがある場合には新規タブを作成し、当該サイトへアクセスするスクリプトを作っています。 後述がサンプルです。 スクリプトの最後にウィンドウをアクティブにするコードを入れているのですが、スクリプト自体はエラーなく完了するものの、IE ウィンドウをアクティブにすることができません。 Win10+IE11 を使っているのですが、何かコードが足りなかったりするのでしょうか。。。 それとも、Win10 + IE11 環境ではそもそも VBS で IE ウィンドウをアクティブにすることはできないのでしょうか。。。 アドバイスを下さると幸いです。 よろしくお願いいたします。 -------------------------------------------------------------------- Dim linknum dim objIE dim spurl linknum=Inputbox("リンク番号を入力してください。") spurl="https://xxxx" & linknum 'Shell.Applicationオブジェクトの作成 Set objShell = CreateObject("Shell.Application") 'IEウィンドウの個数をカウント lngCount = 0 For Each objWindow In objShell.Windows lngCount = lngCount + 1 Next With objShell.Windows 'IE オブジェクトがないときは、新しく作成する If lngCount = 0 Then .Item.Navigate2 spurl lngCount = lngCount + 1 objIE.FullScreen = True objIE.Visible = True 'IE オブジェクトがあるときは、タブを操作する(新しいタブを作成) Else .Item(lngCount - 1).Navigate2 spurl,&H800 IE ウィンドウをアクティブにする Set WshShell=Wscript.CreateObject("Wscript.Shell") WshShell.AppActivate "ページタイトル" WshShell.SendKeys "%( )" WshShell.SendKeys "R" End If End With -------------------------------------------------------------------------------

    2016/05/13 14:00
  • IE11のダウンロード通知バーのVBからの操作

    IE11のダウンロード通知バーをExcel VBAから操作する為、 http://okwave.jp/qa/q8121989.html を参考にさせて頂きました。 「保存」のボタンを探す条件がまずい為か、IUIAutomationElementのButtonを参照する所で、Buttonが見つかっていない為、エラーになります。 Dim iCnd As IUIAutomationCondition Set iCnd = o.CreatePropertyCondition(UIA_NamePropertyId, "保存") Dim Button As IUIAutomationElement Set Button = e.FindFirst(TreeScope_Subtree, iCnd) Dim InvokePattern As IUIAutomationInvokePattern Set InvokePattern = Button.GetCurrentPattern(UIA_InvokePatternId) 〈エラーメッセージ〉 実行時エラー '91': オブジェクト変数またはwithブロック変数が設定されていません 〈動作環境〉 OS Windows 10 64bit Excel2013 どなたか、解決方法のアドバイスを宜しくお願いします。

    2015/09/13 23:16
  • VBAで結合されたセルへの貼り付け記述方法

    VBAでの記述方法について教えてください。 A1のセルに記載されている内容を結合されたB1~D1セルに貼り付ける場合は どのように記述すればよいでしょうか。 よろしくお願いいたします。

    2015/04/14 20:18

ピックアップ