したいのですが、どうやらエラーになるようです。
Sub test()
Dim mystr As String
mystr = "[test]"
If mystr Like "*[*" Then
MsgBox "[が含まれます"
End If
End Sub
だと、実行時エラー93 パターン文字列が不正ですになります。
こういうように各カッコが含まれてるかどうかを取得するにはどうすればいいですか?
したいのですが、どうやらエラーになるようです。
Sub test()
Dim mystr As String
mystr = "[test]"
If mystr Like "*[*" Then
MsgBox "[が含まれます"
End If
End Sub
だと、実行時エラー93 パターン文字列が不正ですになります。
こういうように各カッコが含まれてるかどうかを取得するにはどうすればいいですか?
したいのですが、どうやらエラーになるようです。
Sub test()
Dim mystr As String
mystr = "[test]"
If mystr Like "*[*" Then
MsgBox "[が含まれます"
End If
End Sub
だと、実行時エラー93 パターン文字列が不正ですになります。
こういうように各カッコが含まれてるかどうかを取得するにはどうすればいいですか?
以下のスクリプトについて教えてください。
setで代入したことろはセルの内容がしっかり反映されていたのですが、
=になってからは、書き出されたテキストファイルに不備が出ました。
ググってみたところ、オブジェクト型(セルをまるごとなど)にはsetを使わないとダメとのことでした。
そこで、下記のスクリプトの
IntFlNo = FreeFile
Open StrFN For Output As #IntFlNo
s = Replace(Worksheets("Sheet2").Range("A171").Text, "<br />", vbCrLf)
Print #IntFlNo, s
s = Replace(Worksheets("Sheet2").Range("B171").Text, "<br />", vbCrLf)
Print #IntFlNo, s
Close #IntFlNo
の部分で、
sの変数を使っている箇所を
setで表現したスクリプトを教えてください。
====================================================
Sub Test()
Range("E3").CurrentRegion.Select
Selection.Replace What:="" & Chr(10) & "", Replacement:="<br />", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False
Application.Wait Now + TimeValue("00:00:01")
Dim s As String, IntFlNo As Integer
Dim StrFN As String, myObj As Object
Set myObj = CreateObject("WScript.Shell")
StrFN = myObj.SpecialFolders("Desktop")
Set myObj = Nothing
StrFN = StrFN & "\d.txt"
IntFlNo = FreeFile
Open StrFN For Output As #IntFlNo
s = Replace(Worksheets("Sheet2").Range("A171").Text, "<br />", vbCrLf)
Print #IntFlNo, s
s = Replace(Worksheets("Sheet2").Range("B171").Text, "<br />", vbCrLf)
Print #IntFlNo, s
Close #IntFlNo
End Sub
以下のスクリプトについて教えてください。
setで代入したことろはセルの内容がしっかり反映されていたのですが、
=になってからは、書き出されたテキストファイルに不備が出ました。
ググってみたところ、オブジェクト型(セルをまるごとなど)にはsetを使わないとダメとのことでした。
そこで、下記のスクリプトの
IntFlNo = FreeFile
Open StrFN For Output As #IntFlNo
s = Replace(Worksheets("Sheet2").Range("A171").Text, "<br />", vbCrLf)
Print #IntFlNo, s
s = Replace(Worksheets("Sheet2").Range("B171").Text, "<br />", vbCrLf)
Print #IntFlNo, s
Close #IntFlNo
の部分で、
sの変数を使っている箇所を
setで表現したスクリプトを教えてください。
====================================================
Sub Test()
Range("E3").CurrentRegion.Select
Selection.Replace What:="" & Chr(10) & "", Replacement:="<br />", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False
Application.Wait Now + TimeValue("00:00:01")
Dim s As String, IntFlNo As Integer
Dim StrFN As String, myObj As Object
Set myObj = CreateObject("WScript.Shell")
StrFN = myObj.SpecialFolders("Desktop")
Set myObj = Nothing
StrFN = StrFN & "\d.txt"
IntFlNo = FreeFile
Open StrFN For Output As #IntFlNo
s = Replace(Worksheets("Sheet2").Range("A171").Text, "<br />", vbCrLf)
Print #IntFlNo, s
s = Replace(Worksheets("Sheet2").Range("B171").Text, "<br />", vbCrLf)
Print #IntFlNo, s
Close #IntFlNo
End Sub
以下のスクリプトについて教えてください。
setで代入したことろはセルの内容がしっかり反映されていたのですが、
=になってからは、書き出されたテキストファイルに不備が出ました。
ググってみたところ、オブジェクト型(セルをまるごとなど)にはsetを使わないとダメとのことでした。
そこで、下記のスクリプトの
IntFlNo = FreeFile
Open StrFN For Output As #IntFlNo
s = Replace(Worksheets("Sheet2").Range("A171").Text, "<br />", vbCrLf)
Print #IntFlNo, s
s = Replace(Worksheets("Sheet2").Range("B171").Text, "<br />", vbCrLf)
Print #IntFlNo, s
Close #IntFlNo
の部分で、
sの変数を使っている箇所を
setで表現したスクリプトを教えてください。
====================================================
Sub Test()
Range("E3").CurrentRegion.Select
Selection.Replace What:="" & Chr(10) & "", Replacement:="<br />", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False
Application.Wait Now + TimeValue("00:00:01")
Dim s As String, IntFlNo As Integer
Dim StrFN As String, myObj As Object
Set myObj = CreateObject("WScript.Shell")
StrFN = myObj.SpecialFolders("Desktop")
Set myObj = Nothing
StrFN = StrFN & "\d.txt"
IntFlNo = FreeFile
Open StrFN For Output As #IntFlNo
s = Replace(Worksheets("Sheet2").Range("A171").Text, "<br />", vbCrLf)
Print #IntFlNo, s
s = Replace(Worksheets("Sheet2").Range("B171").Text, "<br />", vbCrLf)
Print #IntFlNo, s
Close #IntFlNo
End Sub
sheet1~sheet5のワークシートがあるとします。
その中で印刷したいシート(複数)を選択し、それぞれのシートのA1セルに入力している数字の
枚数を印刷する、ということを考えています。
そのときに印刷したいシートを選択するので、もちろんシートを選択するのは手動で、
その後、マクロを実行するイメージです。
以下のマクロでいけるかと思ったのですが、仮にsheet1、sheet3、sheet5を
選択して、実行すると、それぞれのA1が、5,7,10であったとしても、3つのシートを
5枚ずつ印刷してしまいます。
(やりたいことはsheet1が5枚、sheet3が7枚、sheet5が10枚、です)
Sub insatsu()
Dim mySheet As Worksheet
Dim m As Integer
For Each mySheet In ActiveWorkbook.Windows(1).SelectedSheets
m = range("A1").Value
mySheet.PrintOut Copies:=m
Next
End Sub
なにか良い解決法があればご教授ねがいます。
お世話になります。今、Excelを使用しVBAで任意のフォルダ内に含まれるファイル(txt形式ですが拡張子はありません)から、特定のA~Bの部分の文字列のみを抜き出し、ExcelのSheetに出力させるというVBAを作成しようと考えています。また、A~Bで抽出した文字列内に”空白”が含まれる場合、その空白でセルを隔てるという処理を加えたいです。
また、それらとは別に任意のフォルダ内に含まれるファイルのファイル名のみを抽出し、Excelに出力するというVBAも作ろうと考えています。
私自身、これまでExcelでは関数を使うのが精一杯でVBAの勉強すらしてきませんでしたので、だいぶ困窮しております。
どなたか、VBAについて詳しい方、ご教授いただけたら幸いです。
以下は、参考までに、特定のフォルダ内に含まれるファイルをSheetに出力するVBAになります。
ここからさらに、任意の文字列を検索し、抽出し、出力する機能と、また空白部分でセルを分ける機能、またファイル名一覧を抽出する機能を加えていきたい所存です。
どなたか、お力添えの程何卒よろしくお願い致します。
Sub GetAllFile()
Dim buf As String, tmp As Variant, cnt As Long, i As Long
Dim myFol As String, myFile As String
Dim fNo As Integer, myCol As Long
With Application.FileDialog(msoFileDialogFolderPicker)
.Title = "*** 対象フォルダを選択し、[OK]をクリック ***"
.InitialFileName = "C:\"
If .Show = True Then
myFol = .SelectedItems(1)
End If
End With
myFile = Dir(myFol & "\*")
myCol = 0
Do While myFile <> ""
fNo = FreeFile
Open myFol & "\" & myFile For Input As #fNo
Do Until EOF(fNo)
Line Input #fNo, buf
tmp = Split(buf, ",")
cnt = cnt + 1
For i = 1 To UBound(tmp) + 1
Cells(cnt, i + myCol) = tmp(i - 1)
Next i
Loop
Close #fNo
myFile = Dir()
myCol = myCol + 4
cnt = 0
Loop
End Sub
上記、VBAは動作はしましたが、やはりフォルダ内のファイル数の数により、途中でフリーズしてしまう事もありました。ご教授の程、何卒よろしくお願い致します。
いつもお世話になります。
エクセルは2010を利用しています。
現在、下記のコードで、文字揃えを制御しています。
A1~C1は、それぞれセルが結合されています。
----------------------------------------------------------
Sub HorizontalAndVerticalAlignmentSamp1()
If Range("B1").Value = "" Then
With Range("C1")
.HorizontalAlignment = xlHAlignRight
End With
Else
With Range("C1")
.HorizontalAlignment = xlHAlignLeft
End With
End If
If Range("A1").Value = "" Then
With Range("B1")
.HorizontalAlignment = xlHAlignRight
End With
Else
With Range("B1")
.HorizontalAlignment = xlHAlignCenter
End With
End If
End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Range("A1:C1") <> "" Then Call HorizontalAndVerticalAlignmentSamp1
End Sub
-------------------------------------------------------------------------
シート2、シート3は、A1~C1のセルがシート1とおなじように結合されています。
シート1で、A1~C1に文字を入力したら、おなじ文字と文字揃えがシート2、シート3でも反映、シート1で、A1~C1に入力されていた文字を削除すると、シート2、シート3も消えているようにしたいです。
わたしの知っている限りの範囲でがんばってみたことは
シート2、シート3のA1に「=Sheet1!A1」、B1に「=Sheet1!B1」、C1に「=Sheet1!C1」と入力して
シート2、シート3にも上記とおなじマクロを記述してみました。
けれど、シート1で入力しても、シート2、シート3を選択して、どこかのセルを1回選択しないと、文字揃えが反映されませんでした。
そこで、
シート1の上記マクロに
Sheet2.select
Sheet3.select
Sheet1.select
を追加してみました。
けれど、あたりまえといえばあたりまえなのですが、シート1でどこかのセルを選択するごとにシート2、シート3、シート1と画面が切り替わるようになり、画面が切り替わったあとにシート2、シート3を見てみても、文字揃えはどこかのセルを選択しないかぎりおなじく反映されませんでした。
どのようにしたらいいのかが分からず、質問いたしました。
みなさまのお知恵を借していただけますと幸いです。
どうかよろしくお願いいたします。