• ベストアンサー

マクロでのセルの位置について

mshr1962の回答

  • mshr1962
  • ベストアンサー率39% (7418/18948)
回答No.1

I = I + 1 '移動値を1追加 AAA = Range("C5").Offset(I, 0).Value 'C5よりI下のセルの値を取得 ではだめなんでしょうか?

関連するQ&A

  • EXCELでENTERキーでセルの移動マクロ

    こんにちは。 EXCELでENTERキーでセルの移動マクロを使いたいのですが、下記のマクロで改良を教えてもらいたいと思います。 まず、最初は必ず、セルB5にフォーカスしたいということ。そうして、できればOFFSETを使わないで、rangeかcellを使いたいのですが、お願いします。 Sub セル移動() Range("B5").Select Select Case ActiveCell.Column Case 1 ActiveCell.Offset(1, 1).Activate Case 2 ActiveCell.Offset(2, 2).Activate Case 3 ActiveCell.Offset(1, 1).Activate Case 4 ActiveCell.Offset(1, 1).Activate End Select End Sub

  • マクロよ動け

    VBA 難民です。 Excel で、左のセルが空白の場合、印刷文字を見えなくするつもりのマクロを作ってみましたが、知らん顔をされます。声の掛け方がまだよくわかってないのです。 こっちを向かせる方法を教えて下さい。よろしくお願いします。 Sub MacroWhiter() Dim a As Variant Dim b As Variant a = ActiveCell.Value b = ActiveCell.Offset(0, -1).Value '一つ左のセルの値 Range("B1").Activate 'ここから始める Do Until IsEmpty(ActiveCell.Value) '空きセルまで続ける If b = 0 Then 'ゼロの場合 ActiveCell.Font.Color = 2 '文字を白色にする ActiveCell.Offset(1, 0).Activate '下の行に移る End If Exit Do Loop '繰り返す a = ActiveCell.Value

  • Excelマクロ:変数でセル範囲指定

    マクロの迷い人です。 Excelの表をマクロで印刷しようと思っています。 行の数が毎回違うため、最終セルもその都度指定しなければなりません。 A1 B1 A2 B2 A3 B3 A4 B4 この例で、A5 B5 以降は空セルとします。 印刷範囲を Range("A1:B4")と書かずに、そのときどきのアクティブセルを変数に代入し、変数を使って範囲指定したいのです。 Sub MacroTest () Dim a As Variant Dim b As Variant Range("B1").Activate Do While a <> 0 ActiveCell.Offset(1, 0).Activate '空白でなければ一つ下に移る a = ActiveCell.Value Loop ActiveCell.Offset(-1, 0).Activate '上の行に移る b = ActiveCell.Value Range("A1:"& b).Select End Sub こうしてみましたがダメでした。 デバッグの方法がわからないので教えて下さい。よろしくお願いします。

  • 行方向の同じ値のセルを結合するマクロ

    ネットで色々調べながら、A列方向の同じ値のセルを結合させるマクロ を作ってみたのですが、もっと簡単にできるようでしたら教えていただきたいです。 どうぞよろしくお願いいたします。 Sub セル結合() Dim r As Integer '行数 Dim i As Integer 'カウンタ r = Sheets(1).Range("a1").CurrentRegion.Rows.Count - 1 Application.DisplayAlerts = False For i = 1 To r Cells(i, 1).Activate '項目の一つ下のセルをアクティブに If ActiveCell.Value = ActiveCell.Offset(1).Value Then Range(ActiveCell, ActiveCell.Offset(1)).Merge End If Next Application.DisplayAlerts = True End Sub

  • マクロの処理速度向上

    教えてください。マクロ初心者です。以下のようなマクロを組みました。 Sub 処方箋一覧() Dim vbOK As Integer Set WS1 = Worksheets("sheet1") Set WS7 = Worksheets("sheet7") WS7.Select Range("b2").Select Selection.End(xlDown).Select ActiveCell.Offset(1, -1).Select ActiveCell.Offset(0, 1) = WS1.Range("B3") ActiveCell.Offset(0, 2) = WS1.Range("h3") ActiveCell.Offset(0, 3) = WS1.Range("q3") ActiveCell.Offset(0, 4) = WS1.Range("v3") ActiveCell.Offset(0, 5) = WS1.Range("y3")         ~中略~ ActiveCell.Offset(0, 167) = WS1.Range("w75") ActiveCell.Offset(0, 168) = WS1.Range("x75") vbOK = MsgBox("入力完了!!", vbOKOnly, "処理確認") If vbOK = 1 Then Worksheets("sheet1").Activate End If End Sub 合計で167のセルを違うシートに転記するマクロです。 動作するのですが、速度が非常に遅くて困っています。 処理速度を向上させるようなマクロの組み方を調べているのですが、わからず困っています。どなたか、教えていただけると助かります。 よろしくお願いいたします。

  • Excelのマクロについて

    Excelについて全くの初心者で、今から勉強を始めるところですが、急遽、次のようなマクロを作成したいです。 アクティブなセルから右に6つ目のセルとそのセルから右に1つ、下に1つ目のセルに現在の時間を記入 どのように記述すればよいでしょうか。 ちなみに、的はずれかもしれませんが、以下のようなマクロを作りましたが、うまくいきませんでした。 よろしくお願いします。 Sub 時間入力() ActiveCell.Offset(0, 6).Activate SendKeys "^(:)" SendKeys "{TAB}" ActiveCell.Offset(1, 0).Activate SendKeys "^(:)" SendKeys "{TAB}" End Sub

  • エクセルで行を非表示にするとアクティブなセルが・・・

    エクセルで行を非表示にするとアクティブなセル?行?がどこかわからなくなり、マクロでアクティブなセルを移動するときにエラーが出ます。 Sub example() ActiveSheet.Range("D3").Select Do Until ActiveCell = 23 If ActiveCell <> "" Then ActiveCell.Offset(1, 0).Select ElseIf ActiveCell <> "" Then ActiveCell.Offset(1, -3).Select ElseIf ActiveCell <> "" Then ActiveCell.Offset(1, -6).Select Else: ActiveCell.EntireRow.Select Selection.EntireRow.Hidden = True ActiveCell.Offset(0, -6).Select End If Loop End Sub 一番下のActiveCell.Offset(0, -6).Select にエラーが出るのですが、どうすればセルを移動できるでしょうか?

  • マクロでテーターを転記した時の空白なしに

    いつもお世話になります。 WINDOWS7 EXCEL2010 です。 添付図で説明させていただきますと、 右側の「請求書」のL5:O9 のデーターを左の「売上表」に下記のマクロにて転記します。 元の値(請求書 L5:O9)の範囲内のデーターが1行 2行 3行 4行は空白行が又は5行の場合はすべてが埋まったりします。 この場合5行の時はいいのですが、例えばデーターが3行の時は添付図で言いますと5の行6の行のように2行が空白になります。 下記のマクロの構文をどういう具合にすればいいか御指導願えませんでしょうか。 参考に、 L5 =IF(B15="","",B15) M5 =IF(L5="","",$A$2) N5 =IF(L5="","",C15) O5 =IF(L5="","",H15) ※ 下記のようにしたかったのですがマクロに詳しくないのと時間がないので上記のような方法になり少し遠回りです。 ‘Range("B1").Select ‘ActiveCell.Offset(1, 0).Activate マクロです。 Sub 売上表へ転記() Dim ID As Long Dim 納品日 As Date ID = Range("M5").Value 日付 = Range("L5").Value Range("L5:O9").Copy Sheets("売上表").Activate Range("A65536").End(xlUp).Activate '販売記録A2がアクティブセル(タイトル行) ActiveCell.Offset(1, 0).Activate ActiveCell.PasteSpecial Paste:=xlPasteValues Application.CutCopyMode = False 'A2:E2 ActiveCell.Offset(0, 4).Activate 'C2が空白 Do Until ActiveCell.Offset(2, 0).Value = "" ActiveCell.Value = ID 'G2 ActiveCell.Offset(0, 0).Value = 納品日 'A3 ActiveCell.Offset(1, 0).Activate Loop End Sub

  • excel vbaでの質問になります

    このようなマクロを作成したのですが、セルに数式が入れてあると、どうしてもその下の空白の行に値を入力されてしまいます。 数式が入っているセルにもそのままセルに値を入れたいのですが・・ 宜しくお願いします。 Dim wb1 As Worksheet, r1 As Range Dim N As Integer, i As Integer Dim mycount As Long   Set wb1 = ThisWorkbook.Worksheets("請求書") mycount = Range("B111").CurrentRegion.Rows.Count Cells(111 + mycount, 2).Select ActiveCell.Offset(0, 0).Value = wb1.Range("C60").Value ActiveCell.Offset(0, 1).Value = wb1.Range("C61").Value ActiveCell.Offset(0, 12).Value = wb1.Range("C66").Value ActiveCell.Offset(0, 13).Value = wb1.Range("C74").Value ActiveCell.Offset(0, 14).Value = wb1.Range("C75").Value ActiveCell.Offset(0, 15).Value = wb1.Range("C84").Value ActiveCell.Offset(0, 16).Value = wb1.Range("C85").Value ActiveCell.Offset(0, 20).Value = wb1.Range("C69").Value ActiveCell.Offset(0, 22).Value = wb1.Range("C68").Value ActiveCell.Offset(0, 23).Value = wb1.Range("C76").Value ActiveCell.Offset(0, 24).Value = wb1.Range("C77").Value Exit Sub

  • マクロでテーターを転記した時の空白なしに

    いつもお世話になります。 WINDOWS7 EXCEL2010 です。 添付図で説明させていただきますと、 右側の「請求書」のL5:O9 のデーターを左の「売上表」に下記のマクロにて転記します。 元の値(請求書 L5:O9)の範囲内のデーターが1行 2行 3行 4行は空白行が又は5行の場合はすべてが埋まったりします。 この場合5行の時はいいのですが、例えばデーターが3行の時は添付図で言いますと5の行6の行のように2行が空白になります。 下記のマクロの構文をどういう具合にすればいいか御指導願えませんでしょうか。 参考に、 L5 =IF(B15="","",B15) M5 =IF(L5="","",$A$2) N5 =IF(L5="","",C15) O5 =IF(L5="","",H15) ※ 下記のようにしたかったのですがそれ程詳しくないのと時間がないので上記のような方法になり少し遠回りです。 ‘Range("B1").Select ‘ActiveCell.Offset(1, 0).Activate マクロです。 Sub 売上表へ転記() Dim ID As Long Dim 納品日 As Date ID = Range("M5").Value 日付 = Range("L5").Value Range("L5:O9").Copy Sheets("売上表").Activate Range("A65536").End(xlUp).Activate '販売記録A2がアクティブセル(タイトル行) ActiveCell.Offset(1, 0).Activate ActiveCell.PasteSpecial Paste:=xlPasteValues Application.CutCopyMode = False 'A2:E2 ActiveCell.Offset(0, 4).Activate 'C2が空白 Do Until ActiveCell.Offset(2, 0).Value = "" ActiveCell.Value = ID 'G2 ActiveCell.Offset(0, 0).Value = 納品日 'A3 ActiveCell.Offset(1, 0).Activate Loop End Sub