>>8 Private Sub Worksheet_Change(ByVal Target As Range) Dim r As Range Set r = ActiveWorkbook.Names("表1").RefersToRange If r.Column = Target.Column And r.Row + r.Rows.Count = Target.Row Then ActiveWorkbook.Names("表1").RefersTo = "=" & Target.Worksheet.Name & "!" & r.Resize(r.Rows.Count + 1).Address End If End Sub とりあえず適当に書いてみた 下に一つ増えるだけ。複数貼り付けとかどうなるかしらん Worksheet_Changeイベントで、てきとうに範囲決めて、Names().RefersToで設定するだけ すきな用に直してくれ
11 :
前スレで以下の質問をしたものなのですが > 変数 X に例えばA1〜A20の数値の和、合計を入れたいのですが。 という質問をして > X = WorksheetFunction.Sum(Worksheets("Sheet1").Range("A1:A20")) というアドバイスをいただいたのですが、この一文を経過したあとで、 ファンクションプロシージャで定義された語句を使うとエラーか、上手く作動しなく なってしまうのですが、なにかそのようなルールがあるのでしょうか?
>>12 俺は0は書かないな。 こんな簡単なものに可読性もへったくれもないと思うし。 ところで省略を嫌う人ってResizeで With Range("A1").Currentregion .Resize( ,2) End With これを下のように略さずに書くのかな? With Range("A1").Currentregion .Resize(.Rows.Count ,2) End With
一つのボタンで、画像と曲を変えていくものを作りたいです。 画像の部分はできたけれども、曲がだめぽ。 Dim cnt As Integer Private Declare Function mciSendString Lib "winmm.dll" Alias "mciSendStringA" (ByVal lpstrCommand As String, ByVal lpstrReturnString As String, ByVal uReturnLength As Long, ByVal hwndCallback As Long) As Long Private Const FILE_NAME As String = "C:\menu.mp3" Private Sub UserForm_Initialize() cnt = 1 ImageChange musicChange End Sub Private Sub CommandButton1_Click() ImageChange musicChange End Sub Private Sub ImageChange() On Error Resume Next With Worksheets(1) If cnt > .OLEObjects.Count Then cnt = 1 Image1.Picture = .OLEObjects("Image" & cnt).Object.Picture cnt = cnt + 1 End With End Sub Private Sub musicChange() If cnt = 1 Then Call mciSendString("play """ & FILE_NAME & """", "", 0, 0) Else Call mciSendString("close """ & FILE_NAME & """", "", 0, 0) End If End Sub 曲はここから入れ子にしたいのだけど、最初の曲が流れない・・・
初心者です。 実行時エラー1004が出ます。 どこを直せばいいのか教えてください。 windows7/excel2010 Sub SetRows() With Worksheets("Sheet2") .Activate .Range(Cells(2, 2), Cells(5, 5)).EntireRow.Value = "hoge" End With End Sub
34 :
Cellsの出所が怪しいな。
35 :
>>33 標準モジュールに書いてれば糞コードだけど一応それで動くはず。 Sheet2以外のシートモジュールに書いてあればRangeとCellsの親(シート)が違うので動かない。 正しくは Sub SetRows() With Worksheets("Sheet2") .Range(.Cells(2, 2), .Cells(5, 5)).EntireRow.Value = "hoge" End With End Sub とCellsにもシートの修飾をつける。
ここはあえてOPENステートメントを推してみる。 How meny files? な世界も偶には良いよね。
44 :
Windows Script Host Object Modelへ参照設定して Dim DesktopPath As String Dim ShellObject As IWshRuntimeLibrary.WshShell Set ShellObject = New IWshRuntimeLibrary.WshShell DesktopPath = ShellObject.SpecialFolders("Desktop") これでデスクトップのパスは得られるから、後は好きなようにやればよろし
>>69 Sub オークションシミューション() Dim a As Integer a = Int(Rnd * 100 + 1) If a <= 20 Then ActiveCell = "あなたは入札にしました" Else ActiveCell = "あなたは入札に失敗しました" End If End Sub
お知恵を拝借させてください。 下のように右クリックメニューから選択範囲のセルを塗りつぶす、みたいなことがしたいのですが、 「引数は省略できません。」のエラーになります。 どうすれば引数(例:34)を渡せますでしょうか? Sub addMenu() Dim CB Set CB = Application.CommandBars("Cell").Controls.Add() With CB .Caption = "塗りつぶし" .OnAction = "setColor(34)" End With End Sub Sub setColor(col As Long) With Selection.Interior .ColorIndex = col End With End Sub
>>86,90 Sub test() Sheet2.Activate With Worksheets("Sheet1") .Range("C1:C5").Copy .Range("D1:D5").PasteSpecial _ Operation:=xlPasteSpecialOperationAdd .Paste (.Range("E1:E5")) End With End Sub 別にシートがアクティブじゃなくても使えますが? >>87 (この場合の)Pasteメソッドがシートのメソッドなんだから対象がシートなのはまあ当然 RangeにPasteメソッドが無い理由なら解らん。PasteSpecialはあるのにな どうせ操作対象をちゃんと指定してないから、アクティブシートが対象になってるだけだろ アクティブじゃないとできない操作の実例教えてくれ