|
▼かみちゃん さん:
>まとめて、こちらにコメントさせていただきます。
>>>> 他のbookの場合開いていないとそのbookのデータは読み込めないのですか。
>>>
>>>基本的には、読めないと考えてください。
>>>GetObject関数などで、できないことはないのですが、裏技みたいなことはで
>>>きるのですが、まずは基本をしっかり知っていただくことが必要ではないかと
>>>思います。
>>>なお、画面遷移を制御することにより、開いているのを見せないようにするこ
>>>とは可能です。
>>↑これいいですね 教授ください。見えないということは
>>閉じるときどうするんでしょ・・・
>
>画面遷移を制御することにより、開いているのを見えないようにするだけです
>ので、実際には、開いています。
>開いているので閉じることもできます。
>以下のコードを試してみてください。
>
>Sub Sample3()
> Dim WB1 As Workbook
> Dim WB2 As Workbook
> Dim strFileName As String
>
> Set WB1 = ThisWorkbook
> strFileName = Application.GetOpenFilename("Microsoft Excelブック,*.xls")
> If strFileName <> "False" Then
> '画面遷移を抑止する
> Application.ScreenUpdating = False
> Set WB2 = Workbooks.Open(strFileName)
> WB1.Activate
> '画面遷移を再開する
> Application.ScreenUpdating = True
> End If
> MsgBox "現在開いているファイルは" & vbCrLf & _
> WB1.FullName & vbCrLf & _
> WB2.FullName
> WB2.Close '指定したファイルを閉じる
>End Sub
ありがとうございます。
これは今回特定のセルクリックと組み合わせない方が
よいのですね?
>
>>ただ違うのはかみちゃんさんの言うListBox1に読込をしているところだけです
>>ListBox1にテキスト.txtを読まない場合はコードがかわるのですか。
>
>私の言うListBox1とは何でしょうか?
>私は、ずっとListBox1を使う必要はないと申し上げてきています。
>テキスト.txt全体を反映させるListBox1の存在の必要性もわかりませんし、
>TestBox1に入力した検索値を条件として部分一致した値を反映させた、
>ListBox2については、複数選択することはないということですので、
>ComboBoxをお勧めしています。
>そして、ComboBoxに値をAddする方法は、[46086]で提示しています。
>これをテキスト.txtから条件の部分一致を反映させるのであれば、
>If strREC Like "*" & Me.TextBox1.Value & "*" Then
> Me.ComboBox1.AddItem strREC
>End If
説明がへたですね
上記のようにListBox1は表示する必要なしですね!了解
ComboBox1をユーザーフォームに配置しました。
クリックミスがなくなります。
>でできます。
>全角・半角、大文字・小文字を統一させるなら、このIf文で
>StrConv関数で変換させて比較すればいいのです。
>
>>わかりました今回は元データの半角カタカナを全角に変更して
>>利用することのします。
>
>その必要はないのですが・・・
>統一処理をするプログラム(StrConv関数で変換して比較する方法)を理解
>すればいいと思います。
この関数も難しそうで、今回の検索では組込難しいということですか?
>それがわからないなら、全角・半角、大文字・小文字を区別して検索条件を
>指定するか、元データを修正するしかありません。
>元データを修正することは、私も好ましくないと考えていますから、条件
>指定を区別したらいかがですか?とコメントさせていただきました。
>
>>ダイアログは開いたのですが既にbookが開いている状態では
>>開く必要ありませんので
>
>ファイルを開くときにすでに開いているブックをチェックして、開いていない
>場合のみ、開く方法は、以下のような感じでできます。
>
>Sub Sample4()
> Dim WB1 As Workbook
> Dim WB2 As Workbook
> Dim strFileName As String
>
> Set WB1 = ThisWorkbook
> strFileName = Application.GetOpenFilename("Microsoft Excelブック,*.xls")
> If strFileName <> "False" Then
> Application.ScreenUpdating = False
> 'すでに開いているかどうかをチェックする
> If Not ChkWorkbook(Mid(strFileName, InStrRev(strFileName, "\") + 1)) Then
> MsgBox strFileName & vbCrLf & "を開きます"
> Set WB2 = Workbooks.Open(strFileName)
> Else
> Set WB2 = Workbooks(Mid(strFileName, InStrRev(strFileName, "\") + 1))
> End If
> WB1.Activate
> Application.ScreenUpdating = True
> End If
> MsgBox "現在開いているファイルは" & vbCrLf & _
> WB1.FullName & vbCrLf & _
> WB2.FullName
>End Sub
>
>Function ChkWorkbook(strWorkbookName As String) As Boolean
> Dim wb As Workbook
>
> ChkWorkbook = False
> For Each wb In Workbooks
> If wb.Name = strWorkbookName Then
> ChkWorkbook = True
> Exit For
> End If
> Next
>End Function
了解です。
用は特定セルクリックでなく単独の起動をしたほうがbestとですね。
|
|