Dim ap As Application Dim wb As Workbook Set ap = New Excel.Application ap.Visible = True Set wb = ap.Workbooks.Open("w:\book1.xlsm") wb.Application.EnableEvents = False こんな感じでテストしてみた
Sheet2に編集済みの文字列はform上に張り付けたコンボックスで下記のコードで読めたしシートの書き込みができた。 でも問題はformを利用せずSheet1に張り付けたコンボックスまたはリスト で同じSheet1に編集済みの文字列A1:B1を複数表示選択して同じSheet1の セルA10:A11に書き込みたいが、どうしてもオブジェクトエラーになる。 シート上でのコンボックスまたはリスト利用は制限がでるのですかね? 'form上からコンボックスでセル参照 Private Sub UserForm_Initialize()
Dim lRow As Long With Worksheets("Sheet2") lRow = .Range("A" & Rows.count).End(xlUp).Row End With With ComboBox1 .ColumnCount = 3 .ColumnWidths = "50;50;50" .RowSource = "Sheet2!A18:B" & "A24" End With End Sub 'シートに連続書き込み Sub test(kazu As Integer, mode As Integer) ’前処理コード Do bs.LineStyle = xlContinuous bs.Weight = xlThick Range(Mid(W_Right, 1, 1) & CStr(count)).Value = UserForm1.ComboBox1.List(ListNo, 0) Range(Mid(W_RightPlas, 1, 1) & CStr(count)).Value = UserForm1.ComboBox1.List(ListNo, 1)
Function AnySplit(TargetRange As Range, Optional SplitStr As String = " ", Optional PutNum As Long = 1) As String Dim Spstr() As String Spstr = Split(TargetRange.Value, SplitStr)
Function AnySplit(TargetRange As Range, Optional SplitStr As String = " ", Optional PutNum As Long = 1) As String Dim str As String Dim Spstr() As String Dim c As Range
str = TargetRange(1).Value
If TargetRange.Count > 1 Then For Each c In Range(TargetRange(2), TargetRange(TargetRange.Count)) str = str & SplitStr & c.Value Next End If
Function spr(ByRef 対象セル As Range, Optional 分割文字 As String = " ", Optional N番目 As Long = 1) As Variant Application.Volatile spr = Split(対象セル.Item(1).Text, 分割文字)(N番目 - 1) End Function
Dim ws1 As Worksheet Dim ws2 As Worksheet Dim i As Integer Dim j As Integer Dim m As Integer Dim time1 As Date Dim time2 As Date Set ws1 = Worksheets("Sheet1") Set ws2 = Worksheets("Sheet2") ws1.Activate ws2.Activate For i = 2 To 100 For j = 2 To 100 If ws1.Cells(j, 1).Value = ws2.Cells(i, 1).Value And ws2.Cells(i, 1).Value <> "" Then For m = 2 To 20 time1 = ws1.Cells(j, 2).Value time2 = ws2.Cells(1, m).Value If time1 = time2 Then MsgBox ("Insert" & time1 & "," & time2) ws2.Cells(i, m).Value = 1 End If Next m End If Next j Next i
Sub Sheetlock() Dim MyMonth As String Dim MyDate As Date '指定月日 MyMonth = ActiveSheet.Name
Select Case MyMonth Case "4月度" MyDate = "5/10" Case "5月度" MyDate = "6/10" ~略~ Case "12月度" MyDate = "1/10" Case "1月度" MyDate = "2/10" Case "2月度" MyDate = "3/10" Case Else MyDate = "4/10" End Select
>>531 最終データの位置とかまじめに考えると結構むずかしい オートフィルター対象になってる範囲とかならとれるから、それの下なら With Sheet1.AutoFilter.Range Set r = .Offset(.Rows.Count).Resize(1) End With r.Value = 設定する文字(配列) 見たいなコードでいけるんじゃね
Sub test() Dim i As Long With ThisWorkbook.Sheets(1) For i = 1 To .Cells(1, 1).End(xlDown).Row .Cells(i, 1) = .Cells(i, 2) & .Cells(i, 1) Next i End With End Sub
ところで Sub Sample2() Dim WSH, LnkFile, DeskTopPath As String, LnkFileName As String Set WSH = CreateObject("WScript.Shell") DeskTopPath = WSH.SpecialFolders("Desktop") LnkFileName = DeskTopPath & "\メモ帳.lnk" Set LnkFile = WSH.CreateShortcut(LnkFileName) MsgBox LnkFile.TargetPath Set LnkFile = Nothing Set WSH = Nothing End Sub のようなコードがあったとして、LnkFileのクラス(?)のメンバをオブジェクトブラウザで見れるようにする方法はありますか?