pkh4989 の回答履歴

全497件中181~200件表示
  • Excel VBA 【QueryTables.Add】について

    おしえてください。 マクロの自動記録で、外部からのデータ取り込みをしましたら 以下の様になりました。 With ActiveSheet.QueryTables.Add(Connection:= _ "○○;■■;●●;;□□;▲▲", Destination:=Range("A1")) .CommandText = Array("SELECT * FROM △△.▽▽") .Name = "☆☆ からのクエリ" .FieldNames = True .RowNumbers = False .FillAdjacentFormulas = False .PreserveFormatting = True .RefreshOnFileOpen = False .BackgroundQuery = True .RefreshStyle = xlInsertDeleteCells .SavePassword = False .SaveData = True .AdjustColumnWidth = True .RefreshPeriod = 0 .PreserveColumnInfo = True .Refresh BackgroundQuery:=False End With このコードについて勉強したくてヘルプやネットで調べましたが どうしても「.Name …」以降の説明がみつかりません; 詳しく説明の載っているサイトもしくは本などご存じでしたら 教えていただけないでしょうか。 よろしくお願い致します。

  • Excel VBA 【QueryTables.Add】について

    おしえてください。 マクロの自動記録で、外部からのデータ取り込みをしましたら 以下の様になりました。 With ActiveSheet.QueryTables.Add(Connection:= _ "○○;■■;●●;;□□;▲▲", Destination:=Range("A1")) .CommandText = Array("SELECT * FROM △△.▽▽") .Name = "☆☆ からのクエリ" .FieldNames = True .RowNumbers = False .FillAdjacentFormulas = False .PreserveFormatting = True .RefreshOnFileOpen = False .BackgroundQuery = True .RefreshStyle = xlInsertDeleteCells .SavePassword = False .SaveData = True .AdjustColumnWidth = True .RefreshPeriod = 0 .PreserveColumnInfo = True .Refresh BackgroundQuery:=False End With このコードについて勉強したくてヘルプやネットで調べましたが どうしても「.Name …」以降の説明がみつかりません; 詳しく説明の載っているサイトもしくは本などご存じでしたら 教えていただけないでしょうか。 よろしくお願い致します。

  • excel 2003から VBAのreplaceマソッドで文字を置換する方法を教えてください

    エクセルファイルシートをセミコロン区切りのテキストファイルに変換して出力したいです。 エクセル2002では以下のVBAで書いたマクロがちゃんと動いてTABをセミコロンに置換できますが、エクセル2003では置換ができなくてデータとデータの間にTABまま出力されます。 Public Sub ExportWorksheetWithCustomDelimiter( _ ByVal SourceWorksheet As Variant, _ ByVal FilePath As String, _ ByVal Delimiter As String) ' Exports the source worksheet as a text file with a custom field delimiter. ' ExportWorksheetWithCustomDelimiter(SourceWorksheet, FilePath, Delimiter) ' SourceWorksheet - The name of or a reference to a worksheet. ' FilePath - The full path to the export file. ' Delimiter - One or more characters to use as the field delimiter. Dim DisplayAlerts As Boolean Dim FileNumber As Long Dim FileData As String If VarType(SourceWorksheet) = vbString Then SourceWorksheet = ActiveWorkbook.Sheets(SourceWorksheet).Name ' Create copy of source worksheet in new workbook Sheet1.Copy ' Save copy as tab delimited text file and close DisplayAlerts = Application.DisplayAlerts Application.DisplayAlerts = False ActiveWorkbook.SaveAs FileName:=FilePath, FileFormat:=xlText ActiveWorkbook.Close SaveChanges:=False Application.DisplayAlerts = DisplayAlerts ' Read file into string variable and delete file FileNumber = FreeFile 'Open FilePath For Binary Access Read Write As FileNumber Open FilePath & ".txt" For Binary Access Read Write As FileNumber FileData = StrConv(InputB(LOF(FileNumber), FileNumber), vbUnicode) Close FileNumber Kill FilePath & ".txt" ' Replace all tabs with special character FileData = Replace(FileData, Chr(9), Delimiter) ' Right modified text back out to same file Open FilePath For Binary Access Read Write As FileNumber Put FileNumber, , FileData Close FileNumber End Sub 上のマクロの実行後の結果は次と同じです。 エクセル2002からマクロの実行結果:AAA;BBB;CCC;DDD;EEE;FFF エクセル2003からマクロの実行結果:AAA BBB CCC DDD EEE FFF 解決方法を教えてください。 ぜひよろしくお願いします。 ありがとうございます。

  • excel 2003から VBAのreplaceマソッドで文字を置換する方法を教えてください

    エクセルファイルシートをセミコロン区切りのテキストファイルに変換して出力したいです。 エクセル2002では以下のVBAで書いたマクロがちゃんと動いてTABをセミコロンに置換できますが、エクセル2003では置換ができなくてデータとデータの間にTABまま出力されます。 Public Sub ExportWorksheetWithCustomDelimiter( _ ByVal SourceWorksheet As Variant, _ ByVal FilePath As String, _ ByVal Delimiter As String) ' Exports the source worksheet as a text file with a custom field delimiter. ' ExportWorksheetWithCustomDelimiter(SourceWorksheet, FilePath, Delimiter) ' SourceWorksheet - The name of or a reference to a worksheet. ' FilePath - The full path to the export file. ' Delimiter - One or more characters to use as the field delimiter. Dim DisplayAlerts As Boolean Dim FileNumber As Long Dim FileData As String If VarType(SourceWorksheet) = vbString Then SourceWorksheet = ActiveWorkbook.Sheets(SourceWorksheet).Name ' Create copy of source worksheet in new workbook Sheet1.Copy ' Save copy as tab delimited text file and close DisplayAlerts = Application.DisplayAlerts Application.DisplayAlerts = False ActiveWorkbook.SaveAs FileName:=FilePath, FileFormat:=xlText ActiveWorkbook.Close SaveChanges:=False Application.DisplayAlerts = DisplayAlerts ' Read file into string variable and delete file FileNumber = FreeFile 'Open FilePath For Binary Access Read Write As FileNumber Open FilePath & ".txt" For Binary Access Read Write As FileNumber FileData = StrConv(InputB(LOF(FileNumber), FileNumber), vbUnicode) Close FileNumber Kill FilePath & ".txt" ' Replace all tabs with special character FileData = Replace(FileData, Chr(9), Delimiter) ' Right modified text back out to same file Open FilePath For Binary Access Read Write As FileNumber Put FileNumber, , FileData Close FileNumber End Sub 上のマクロの実行後の結果は次と同じです。 エクセル2002からマクロの実行結果:AAA;BBB;CCC;DDD;EEE;FFF エクセル2003からマクロの実行結果:AAA BBB CCC DDD EEE FFF 解決方法を教えてください。 ぜひよろしくお願いします。 ありがとうございます。

  • WindowsCE5.0マシンでSQLサーバに接続

    WinXP、VS2005(VB)においてデバイスアプリケーションを作成しています。そこで、サーバー側のSQLServer2005Expressに接続したいのですがうまくいきません。ちなみに実行は、PocketPC2003のエミュレーターを使用しています。[SqlClient]を使用してConnectionStringに、 "Data Source=PC名\sqlexpress;Initial Catalog=DB名;Persist Security Info=True;User ID=sa;Password=パスワード;Connection Timeout=10" を入れてOpenしようとしているのですができません。ポイントは(1)そもそも[SqlClient]を使用してSQLサーバーにアクセスできるか?(2)エミュレータに設定が必要(IEでHPの観覧が出来るのは確認できた)(3)接続文字列が不備?(ただし通常のWindowsアプリでは動作確認できている) いろいろと要因はあるかと思いますが、まず何か思い当たるところがありましたらご教授ください。(SQLサーバーはF/Wは無効にしていますし外部からの接続は確認できています)

  • VBAでフォーム登録する場合の未入力のエラー

    病院を登録するフォームをつくっています。 名前を入れて登録。その後、入力画面がnullになる。 というのはできたのですが、未入力の場合 (登録した後、クリックしたときに) フィールドに必要なプロパティが True に設定されているため~~ と出てしまいます。 そのエラーメッセージを「"入力してください"」 のメッセージBOXに変えたくて上記のようにしたのですが、 変わりません。どこがおかしいのでしょうか。 どなたか、分かる方ご指導くださいませ。 Private Sub コマンド0_Click() Dim db As Database, rst As Recordset Set db = CurrentDb Set rst = db.OpenRecordset("T_病院", dbOpenTable, dbAppendOnly) With rst .AddNew ![病院名] = Me.病院名 If Me![病院名] = Null Then MsgBox "入力してください" GoTo minyuuryoku End If .Update minyuuryoku: End With Me.病院名 = Null With db End With rst.Close db.Close Set db = Nothing End Sub

  • MSFlexGrid

    エクセル上にMSFlexGridを表示させたいのですが、コントロールの一覧に表示されません。 エクセルに付属のVisualBasicEditor(VB6?)でDBからデータ取得し、MSFlexGridに表示させたいと思っています。 色々調べては見たのですが、MSFlexGridをエクセル上に配置するというものが検索できませんでした。 友人のエクセルにはエクセルのコントロールにMSFlexGridが表示されています。 おそらく何かのライブラリ?か何かが必要だと思うのですが知っている方いましたらご教授ください。

  • エクセルでエラーメッセージ(実行時選エラー)をMSGBOXに変更できないでしょうか?

    エクセルで次のエラーメッセージをMSGBOXに変更できないでしょうか?  なお、原因は判明しましたが、 自作マクロでの操作上どうしても、このエラーメッセージ出力が避けれません。 どなたか力を貸してください。よろしくお願いします。 【現 状】→『Microsoft Visual Basic 実行時エラー’9’インデックス が有効範囲ではありません。』 【変更例】→『msgbox "始めに、○○操作を実施してください。", , "この操作は出来ません!" 』

  • Excel2007 IFERROR 他のバージョンで開くとどうなりますか?

    Excel2007になって、IFERRORというとても便利な関数ができました。 でも、他のバージョンでは使えないとのこと。 もし、IFERRORを使ったExcelを他のバージョンで開いた場合、どのようになってしまいますか? エラー表示がでるのですか?

  • VBからOracleへの接続方法

    VBからOracleへの接続方法として、ADO、DAO、ODBC、oo4oなど色々と方法があるようですが、どれが一番いいんでしょうか。 oo4oは別途インストールが必要でしょうか。 環境はまっさらなXPから、Excelマクロでサーバ上のOrcleに接続します。

    • ベストアンサー
    • noname#147912
    • Oracle
    • 回答数1
  • ExcelVBAでのメニューバーのコントロール

    ExcelVBAでシート編集時、元に戻す・やり直し機能を使えなくするにはどういうコーディングをすればよいのでしょうか? 現在、シート表示の初期処理で以下のようなコーディングを入れていますが、機能が使えてしまうようです。 Dim Menuobj As Object Set Menuobj = Application.CommandBars("Worksheet Menu Bar") Menuobj.Controls.Item(2).Controls.Item(1).Enabled = True Menuobj.Controls.Item(2).Controls.Item(2).Enabled = True どなたか教えてください! よろしくお願いいたします。

  • 下記のマクロは

    E列の5行目から2000行までの間で 鉄、銅、銀、空白以外の文字が入っていたら 『鉱1_Click』という別のマクロを行うというマクロなのですが、 『銀』に限ってはE列5行目~2000行の間に1つだけあっても 『鉱1_Click』を走らせるようにしたいのですが、 どのように改造すればできると思いますか? E列5行目~2000行の間に『銀』に限っては2つ以上でないと作動しないという風にしたいのです。 E列5行目~2000行の間に鉄、銅、空白、銀(1つ)の状態では発動しないようにしたいです。 当たり前ですが今現在ですと、銀がなかったり1つでも作動してしまいます。 Private Sub 鉱_Click() Dim ColumnA Dim flg As Boolean flg = False ColumnA = Columns("E:E") For i = 5 To 2000 If ColumnA(i, 1) = "鉄" Or ColumnA(i, 1) = "銅" Or ColumnA(i, 1) = "銀" Or ColumnA(i, 1) = "" Then Else flg = True Exit For End If Next If flg Then 鉱1_Click Else End If End Sub

  • 配列表示と間引き

    配列の間引きをを教えて下さい。 下記文を書きました Sub 配列() Dim u As Integer '左 Dim v As Integer '中 Dim w As Integer '右 Dim x As Integer '左 Dim y As Integer '中 Dim z As Integer '右 Dim row As Integer '行カウンタ Dim col As Integer '列カウンタ Dim intSheet As Integer 'シートカウンタ Dim blnNextPage As Boolean '次シートフラグ '初期値セット u = 1 v = 2 w = 3 x = 4 y = 5 z = 5 row = 0 col = 1 intSheet = 1 Do While (1) 'zカウント z = z + 1 If z > 20 Then 'zが20以上ならy+1 y = y + 1 If y > 19 Then 'yが20以上ならx+1 x = x + 1 If x > 18 Then 'xが20以上ならy+1 w = w + 1 If w > 17 Then 'wが20以上ならx+1 v = v + 1 If v > 16 Then 'wが20以上ならx+1 u = u + 1 '終了条件 If (x = 19 And y = 19 And z = 20) Then Exit Do 'v初期化 = x+1 v = u + 1 End If 'w初期化 = y+1 w = v + 1 End If 'x初期化 = x+1 x = w + 1 End If 'y初期化 = y+1 y = x + 1 End If 'z初期化 = y+1 z = y + 1 End If If z > 20 Then Exit Sub '行カウント row = row + 1 If row > 1000 Then '1000で次の列か次のページへ If blnNextPage Then '行・列カウンタ初期化 col = 1 row = 1 '次のシートへ intSheet = intSheet + 1 '次のシートが無い場合は追加 If intSheet > Worksheets.Count Then Sheets.Add After:=Worksheets(Worksheets.Count) End If 'シートをアクティブに Worksheets(intSheet).Select 'フラグ消去 blnNextPage = False Else '次の列へ col = col + 6 row = 1 'blnNextPage = True End If End If If col = 6 * 3 + 1 Then blnNextPage = True End If 'データ表示 Worksheets(intSheet).Range(Chr(64 + col) & row).Cells = u Worksheets(intSheet).Range(Chr(64 + col + 1) & row).Cells = v Worksheets(intSheet).Range(Chr(64 + col + 2) & row).Cells = w Worksheets(intSheet).Range(Chr(64 + col + 3) & row).Cells = x Worksheets(intSheet).Range(Chr(64 + col + 4) & row).Cells = y Worksheets(intSheet).Range(Chr(64 + col + 5) & row).Cells = z Loop End Sub 上記文で表示をしますが、 6列目までの間に3列の連数字の時には表示を行わず、次に移る様にしたいのですが、どうすれば良いでしょうか? 1,2,5,6,10,12はOKです 1,2,3,5,6,10又は1,3,4,5,10,11等3連の数字は表示を行わない。

  • VBA 繰り返し処理について

    VBA初心者で書籍などで基本的な繰り返し処理のサンプル文を読んだのですが、 自分がやりたいことをどう繰り返し文で実現すればいいのかよくわかっていません。 やりたいことは以下なのですが、繰り返し文についてご教授ください。 Excel ファイルイメージ A列 B列 C列 1    11    A 1    12    B 1    13    A 2    21    C 2    22    B 2    23    B ・・・ →このファイルイメージを参考にご説明すると、A列で同じ値分 ループを回し、C列の値によって一つの値に絞り込むことを実行 したいです。 例えば、 A列が1で、C列にA,B,Aが存在した場合、Aが二つあるので B列の値が最大の行(例:13)のD列にAという値を設定する。

  • VBA 繰り返し処理について

    VBA初心者で書籍などで基本的な繰り返し処理のサンプル文を読んだのですが、 自分がやりたいことをどう繰り返し文で実現すればいいのかよくわかっていません。 やりたいことは以下なのですが、繰り返し文についてご教授ください。 Excel ファイルイメージ A列 B列 C列 1    11    A 1    12    B 1    13    A 2    21    C 2    22    B 2    23    B ・・・ →このファイルイメージを参考にご説明すると、A列で同じ値分 ループを回し、C列の値によって一つの値に絞り込むことを実行 したいです。 例えば、 A列が1で、C列にA,B,Aが存在した場合、Aが二つあるので B列の値が最大の行(例:13)のD列にAという値を設定する。

  • 印刷後のVBAの実行 (3)

    Private Sub Workbook_BeforePrint(Cancel As Boolean) If ActiveSheet.Name = "Sheet1" Then If Range("D6").Value = "" Then Cancel = True MsgBox ("名前を入力してください") Range("D6").Select Exit Sub End If Else If ActiveSheet.Name = "Sheet2" Then If Range("C11").Value = "" Then Cancel = True MsgBox ("受付時間を入力してください") Range("C11").Select Exit Sub End If Else Exit Sub End If End If If Worksheets("Sheet1").Range("D5") = "不要" Then GoTo P1 ActiveSheet.Range("A70:Y70").Copy If Worksheets("Sheet3").Range("A1").Value = "" Then Worksheets("Sheet3").Range("A1").PasteSpecial Paste:=xlPasteValues Else Worksheets("Sheet3").Range("A65536").End(xlUp).Offset(1, 0).PasteSpecial _ Paste:=xlPasteValues End If Application.CutCopyMode = False P1: ActiveSheet.Range("A1").Select End Sub sheet1のD5に「不要」と入っていたら 24~33行目の作業がキャンセルになりますが sheet2のD5にも「不要」と入っていたら、同じ様にキャンセルできる様に出来ますでしょうか? ご回答お願いします

  • VB6での配列の SORT の使い方 

     お世話になります。   下記のように、配列にランダムな数値を入れて、それを昇順、降順にしたいのですが、この場合の SORT の使い方を教えて欲しいです。  Dim YUI(100) As Integer   YUI(1) =88:YUI(2) =53:YUI(3) =7 ~ YUI(98) =13:YUI(99) =2:YUI(100) =94 下記のような並べ替えをしていますが、SORT を使った場合の書き方を教えて下さい。 Dim I1,I4,D7 As Integer For I1 = 1 To 100 - 1 For I4 = I1 + 1 To 100 If YUI(I1) < YUI(I4) Then D7 = YUI(I4) YUI(I4) = YUI(I1) YUI(I1) = D7 End If Next I4 Next I1

  • [Excel]2つのファイルの異なる点を抜き出す方法を教えてください

    久しぶりにお邪魔します。 エクセルの操作について、詳しい方教えてください。 2つのエクセルファイルがあります(AAA.xlsとBBB.xlsとします) どちらにも同じような商品名がずらっと並んでいますが、AAA.xlsにはあってBBB.xlsにはない商品名だけを抜き出したファイルを作成したいのです。 例えば 「AAA.xlsの内容」 りんご みかん バナナ なし ぶどう もも 「BBB.xlsの内容」 なし みかん りんご ぶどう ⇒「バナナ、もも」を抜き出したい AAAには3万個ほどの商品名が入っていますので、手動ではとても(泣)。 よろしくおねがいします。

  • チェックボックスで指定出来る数を制限したい

    ユーザーフォームにて、合計20個のチェックボックスを表示させ、そのうち12個を選択させたいと考えています。 その際、12個以上は選択出来ないようにする事は可能でしょうか? ※「12個以上選択した状態で決定するとエラーメッセージを表示させる」といった感じのプログラムは組めますが、もし可能であれば12個以上選択出来ないようにしたいです

  • VBAでシートの保護

    初めまして。 私はWindowsXP、Excel2003のVBAでシートの保護、またそれの解除のコードを組んだのですが、以下のコードでは「○○○と言う名前で保存します。よろしければこのままOKをクリックしてください」の箇所でキャンセルを選択した時に、シートの保護を行いたいのですが、どのようなコードにすればよいてのでしょうか? 例)   Dim FileName As String Dim FileExt As String Dim BkName1 As String Dim BkName2 As String Dim BkName3 As String Dim OldWkbook As Workbook Dim NewWkbook As Workbook Const StName1 As String = "適材適所グラフ" Const StName2 As String = "適材適所回答" Const StName3 As String = "適性検査III回答" Const StName4 As String = "適性検査IIIグラフ" 'シートの保護を解除 Worksheets("適性検査III回答").Unprotect Worksheets("適材適所回答").Unprotect Application.DisplayAlerts = False Set OldWkbook = ActiveWorkbook ' 'ファイル名を取得 BkName1 = OldWkbook.Sheets(StName3).Range("L1").Value BkName2 = OldWkbook.Sheets(StName3).Range("L2").Value BkName3 = OldWkbook.Sheets(StName3).Range("L3").Value FileName = BkName1 & Format(".") & BkName2 & Format(".") & BkName3 & ".xls" ' FileName = InputBox(FileName & "と言う名前で保存します" & vbCr & "よろしければこのままOKをクリックしてください", "保存ファイル名の確認", FileName) If FileName = "" Then Exit Sub Else If Right(FileName, 4) <> ".xls" Then MsgBox "ファイル名が異常です。" Exit Sub End If End If OldWkbook.Sheets(Array(StName1, StName2, StName3, StName4)).Copy Set NewWkbook = ActiveWorkbook 'ボタンを削除 For wIx = NewWkbook.Sheets(1).Shapes.Count To 1 Step -1 If Left(NewWkbook.Sheets(1).Shapes(wIx).Name, 6) = "Button" Then 'ボタンのみ削除 NewWkbook.Sheets(1).Shapes(wIx).Delete End If Next NewWkbook.Sheets(1).Name = StName1 'コピー先シートの保護 Sheets(1).Protect Sheets(2).Protect Sheets(3).Protect Sheets(4).Protect FileName = "C:\採点結果\" & FileName If Dir(FileName) <> "" Then '##ファイルが既に存在する If MsgBox("既に指定のファイルが存在します。 置き換えますか?", vbOKCancel, "置き換えの確認") = vbCancel Then NewWkbook.Close savechanges:=False '##保存せずに終了 Exit Sub '##指定ファイル置き換え保存 End If NewWkbook.SaveAs FileName:=FileName Else '##ファイルを新規保存 NewWkbook.SaveAs FileName:=FileName End If NewWkbook.Close savechanges:=False Application.DisplayAlerts = True 'シートの保護 Worksheets("適性検査III回答").Protect Worksheets("適材適所回答").Protect End Sub