よろしくお願いします。初心者で勉強中です。以下のコードを作成してみましたがエラーが出ます。いろいろ調べてみましたが解決策がわからないので、教えて頂ければと思います。
・シートは31シートあります(1番左のシート名は"初期設定"、2番目は 1日、3番目は2日と・・・、順に30日まであります。)
。
・やりたい事。
・2番目シートの(A1からA10)までをコピーし、1番目シートのA2にはりつける。3番目シートの(A1からA10)までをコピーし、1番目シートの先ほど貼り付けたデータの1つ下の行にはりつける・・・順に30日までのデータをすべて1番目シートに貼り付けたいと思っています。
・"初期設定シート"の1行目には文字が入っているので、データの貼り付けは2行目からにする予定です
・作ったコード
Sub 練習()
Dim maxrow As Long
Dim i As Long
maxrow = Sheets(1).Range("a1").End(xlDown).Row
For i = 2 To 31
Sheets(i).Select
Sheets(i).Range("A1", "A10").Select
Selection.Copy Worksheets(1).cells(maxrow+1,1)
Next i
End Sub
・F8で1文ずつ確認すると、Selection.Copy Worksheets(1).cells(maxrow+1,1)
を実行したときに、「実行時エラーがでます」。
EXCEL2000を使用しています。
よろしくお願いします。
ExcelVBAでどうしても分からないところがあったため、質問させていただきました。
<Usrform上Control>
・UserForm1
・MultiPage-Page1
・CommandButton1(押すとPageが追加されます。Page1,Page2,Page3...)
・Combobox1
・TextBox1
<現在可能な動作>
UserForm1上にMultiPageのPage1を設定しています。
CommandButton1を押すとPage2が追加され、Page1上に設定されてあるCombobox1とTextBox1をPage2上に追加します。
<行ないたい動作>
現在は、Page1上でCombobox1の値が変更された時に、Page1上のTextBox1の値が変更されるように設定していますが、
Page2上のCombobox1の値が変更された時に、Page2上のTextBox1の値を変更することは出来ますでしょうか?
使用Versionは、Excel 2003です。
何卒、よろしくお願いします。
<Code>
Private Sub CommandButton3_Click()
Dim myCmbbx As MSForms.ComboBox
Dim myTxtbx As MSForms.TextBox
With MultiPage1
.Pages.Add , , .Value + 1
.Value = .Value + 1
End With
With MultiPage1.SelectedItem
Set myCmbbx = .Controls.Add("Forms.Combobox.1", "ComboBox1", True)
With myCmbbx
.AddItem "AAA"
.AddItem "BBB"
.AddItem "CCC"
End With
Set myTxtbx = .Controls.Add("Forms.TextBox.1", "TextBox1", True)
With myTxtbx
.MultiLine = True
End With
End With
End Sub
Private Sub ComboBox1_change()
If ComboBox1.Text = "BBB" Then
TextBox1.Value=1234567
End If
End Sub
タイマーコントロールについて の続きになります。
一つ方法を考えました。いくつか問題ありですが・・。
ApplicationEvent.vbの部分を
Namespace My
Partial Friend Class MyApplication
Protected Overrides Function OnInitialize( _
ByVal commandLineArgs As _
System.Collections.ObjectModel.ReadOnlyCollection(Of String) _
) As Boolean
'スプラッシュウィンドウを表示する最短時間を0.5秒にする
Me.MinimumSplashScreenDisplayTime = 500
Return MyBase.OnInitialize(commandLineArgs)
End Function
'スプラッシュスクリーンのタイマーコントロール設定
Friend Sub Splash()
With SplashScreen1.Timer1
.Enabled = True
.Interval = 500
End With
SplashScreen1.Timer1.Start()
End Sub ' この書き方あってますか?とりあえずは反映されてるようですけれど・・・
End Class
End Namespace
SplashScreen1の部分を
Public Class SplashScreen1
Friend Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
' クリックで閉じる
DialogResult = DialogResult.OK
Me.Close()
End Sub
Friend Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
' タイマーコントロール発動時、瞬時に停止させる。スクリーンは消えないように。
Me.Timer1.Enabled = False
Me.ShowDialog()
End Sub
End Class
と、してみましたが・・・問題が発生するのです。
この時、スクリーンフォームがMe.ShowDialog()と書いてあるにもかかわらず、
メインフォームとともに操作可能・・つまりモードレスであるShowで表示されるのです。上記のコードを実行してもらえれば分かると思いますが・・。
また、メインフォームが前方に、スクリーンフォームが後方に行ってしまいます。これはどのようにすれば良いでしょうか?
Me.TopMost = True としても駄目でした。 BringToFrontを使っても同じでした。
タイマーコントロールについて の続きになります。
一つ方法を考えました。いくつか問題ありですが・・。
ApplicationEvent.vbの部分を
Namespace My
Partial Friend Class MyApplication
Protected Overrides Function OnInitialize( _
ByVal commandLineArgs As _
System.Collections.ObjectModel.ReadOnlyCollection(Of String) _
) As Boolean
'スプラッシュウィンドウを表示する最短時間を0.5秒にする
Me.MinimumSplashScreenDisplayTime = 500
Return MyBase.OnInitialize(commandLineArgs)
End Function
'スプラッシュスクリーンのタイマーコントロール設定
Friend Sub Splash()
With SplashScreen1.Timer1
.Enabled = True
.Interval = 500
End With
SplashScreen1.Timer1.Start()
End Sub ' この書き方あってますか?とりあえずは反映されてるようですけれど・・・
End Class
End Namespace
SplashScreen1の部分を
Public Class SplashScreen1
Friend Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
' クリックで閉じる
DialogResult = DialogResult.OK
Me.Close()
End Sub
Friend Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
' タイマーコントロール発動時、瞬時に停止させる。スクリーンは消えないように。
Me.Timer1.Enabled = False
Me.ShowDialog()
End Sub
End Class
と、してみましたが・・・問題が発生するのです。
この時、スクリーンフォームがMe.ShowDialog()と書いてあるにもかかわらず、
メインフォームとともに操作可能・・つまりモードレスであるShowで表示されるのです。上記のコードを実行してもらえれば分かると思いますが・・。
また、メインフォームが前方に、スクリーンフォームが後方に行ってしまいます。これはどのようにすれば良いでしょうか?
Me.TopMost = True としても駄目でした。 BringToFrontを使っても同じでした。
タイマーコントロールについて の続きになります。
一つ方法を考えました。いくつか問題ありですが・・。
ApplicationEvent.vbの部分を
Namespace My
Partial Friend Class MyApplication
Protected Overrides Function OnInitialize( _
ByVal commandLineArgs As _
System.Collections.ObjectModel.ReadOnlyCollection(Of String) _
) As Boolean
'スプラッシュウィンドウを表示する最短時間を0.5秒にする
Me.MinimumSplashScreenDisplayTime = 500
Return MyBase.OnInitialize(commandLineArgs)
End Function
'スプラッシュスクリーンのタイマーコントロール設定
Friend Sub Splash()
With SplashScreen1.Timer1
.Enabled = True
.Interval = 500
End With
SplashScreen1.Timer1.Start()
End Sub ' この書き方あってますか?とりあえずは反映されてるようですけれど・・・
End Class
End Namespace
SplashScreen1の部分を
Public Class SplashScreen1
Friend Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
' クリックで閉じる
DialogResult = DialogResult.OK
Me.Close()
End Sub
Friend Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
' タイマーコントロール発動時、瞬時に停止させる。スクリーンは消えないように。
Me.Timer1.Enabled = False
Me.ShowDialog()
End Sub
End Class
と、してみましたが・・・問題が発生するのです。
この時、スクリーンフォームがMe.ShowDialog()と書いてあるにもかかわらず、
メインフォームとともに操作可能・・つまりモードレスであるShowで表示されるのです。上記のコードを実行してもらえれば分かると思いますが・・。
また、メインフォームが前方に、スクリーンフォームが後方に行ってしまいます。これはどのようにすれば良いでしょうか?
Me.TopMost = True としても駄目でした。 BringToFrontを使っても同じでした。