• 締切済み

Excel マクロで困った

A列 ------ B列 ------- C列 2716 ----- ------- =RSS|'2716.T'!更新時刻 2236 ----- ------- =RSS|'2236.T'!更新時刻 410 ----- ------- =RSS|'410.T'!更新時刻 9134 ----- ------- =RSS|'9134.T'!更新時刻 263 ----- ------- =RSS|'263.T'!更新時刻 手動 A列 は=RAND( ) で約 1万行 位 手動 C列 に=CONCATENATE( ) で A列 を挿入 =CONCATENATE($C$1,$C$2,$A11,$C$4,C$10) A11 の数字が全部同じになる困った マクロ C列 を完成   Range("c11").Select i = i + 11    f01: Cells(i, 3).Select     Selection.Copy     Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _     :=False, Transpose:=False      Application.CutCopyMode = False      ActiveCell.FormulaR1C1 = "=RSS|'2716.T'!更新時刻" 注    Aの2716に数字が全部同じになる困った     i = i + 1     If Cells(i, 3) <> "" Then GoTo f01     End Sub

みんなの回答

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.1

こんにちは。 申し訳ないのですが、ご質問が良く理解できません。 マクロ自体が、中途半端になっていますが、それは良いとしても、 以下の手順が、理解できません。 # 手動 A列 は=RAND( ) で約 1万行 位  RAND() で入れれば、小数点になるはずです。 #手動 C列 に=CONCATENATE( ) で A列 を挿入 =CONCATENATE($C$1,$C$2,$A11,$C$4,C$10) 何をどう入れたのか、再現できません。 C1 に、=CONCATENATE($C$1,$C$2,$A11,$C$4,C$10) のような式を入れれば、循環参照が起こります。  A列 を挿入 という意味も不明です。 ご自身が、きちんと説明が不安なときは、それが、何をする目的で、どうしたいのか、説明されたほうがよいですね。セルのどこの番地に何があり、それを、どこにどうしたいのか、ということを明確にお示しください。 VBAをおもにする回答者さんは、マクロコードは、いろんなパターンを数百種類を見ていますから、逆に、一定のレベルに達していない方の未完成のマクロコードは、意味が理解できないのです。

yuki-g
質問者

お礼

Wendy02さん   修行が足りなく申し訳ありません。  後日再設定して出直しします。  その節には また お願いします。

関連するQ&A

  • EXCELマクロについて

    条件 シート名提供データE列の3行目からデータが入っています。    ブランク以外のデータをコピーしてシート名WorkのC列の2行目から貼り付けたいので下記のマクロを書いていますがおかしい所 はないのでしょうか。教えてください。 いまいちCellsの使い方がわかりません。 出来たら下記の意味を教えてください。 brank = Worksheets("提供データ").Cells(gyo, 5).Text Range(Cells(3, 5), Cells(gyo, 5)).Select Sub 貼付() Dim gyo, brank Sheets("提供データ").Select Range("e3").Select gyo = 2 Do gyo = gyo + 1 brank = Worksheets("提供データ").Cells(gyo, 5).Text Loop While brank <> "" Range(Cells(3, 5), Cells(gyo, 5)).Select Selection.Copy Sheets("work").Select Range("c2").Select Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _ False, Transpose:=False End Sub

  • RSSマクロ

    winxp he sp3, excel2003 1. 問合せ 参考a.マクロでは、iNumber = 6501 1個となっています。 これを、銘柄txtから読み込んで、下記のような結果を表示したいのです。 2. 銘柄.txt 約100個: 6501,日立 6502,東芝 6503,三菱電機 3. マクロ結果: コード,銘柄,現在値,高値,安値 6501,日立,770,785,765 6502,東芝,765,779,758 6503,三菱電機,780,985,970 参考: a. Sub Macro1() ' ' Macro1 Macro ' マクロ記録日 : 2008/9/3 ユーザー名 : Cells(1, 1) = "コード": Cells(1, 2) = "銘柄": Cells(1, 3) = "現在値" Cells(1, 4) = "高値": Cells(1, 5) = "安値" Dim iRow As Integer '行指定 Dim iNumber As Integer 'A列4桁数字 iNumber = 6501 'A列の4桁数字初期指定 iRow = 2 '2行目 Cells(iRow, 1).Select 'A列をセレクト(アクティブ化) Cells(iRow, 1) = iNumber 'A列に数字を入力 Cells(iRow, 2) = "=RSS|'" & iNumber & ".T'!銘柄名称" 'B列に式を入力 Cells(iRow, 3) = "=RSS|'" & iNumber & ".T'!現在値" 'C列に式を入力 Cells(iRow, 4) = "=RSS|'" & iNumber & ".T'!高値" 'D列に式を入力 Cells(iRow, 5) = "=RSS|'" & iNumber & ".T'!安値" 'E列に式を入力 End Sub b. マクロ結果: コード,銘柄,現在値,高値,安値 6501,日立,809,815,805 よろしくお願いします。

  • セルとセルの文字列を結合について

       A     B       C 1       2008/1/2   0:00:00 2       2008/1/2   0:15:00 3       2008/1/2   0:30:00 4       2008/1/2   0:45:00 5       2008/1/2   1:00:00 6       2008/1/2   1:15:00 ↓     A          B       C 1 2008/1/2 0:00   2008/1/2   0:00 2 2008/1/2 0:15   2008/1/2   0:15 3 2008/1/2 0:30   2008/1/2   0:30 4 2008/1/2 0:45   2008/1/2   0:45 5 2008/1/2 1:00   2008/1/2   1:00 6 2008/1/2 1:15   2008/1/2   1:15 といった感じにA列に Bの日付とCの時刻を半角スペースを挟んで 入力させたいのですが Excel上で以下の関数を使って手動でやると =CONCATENATE("2008/1/1"," ",0:15) 2008/1/1 0:00 と表示されるが マクロでの記述上では上手くいかない。 For i = 1 To 10 Range("A1,A10") = CONCATENATE(Cells(i, 2), Cells(i, 3)) Next ↑書き方としてはやっぱり間違ってる? 何かいい書き方ってないでしょうか・・? お手数おかけいたしますがよろしくお願いします。

  • マクロが起動しない

    For k = 1 To 1 For i = 10 To 25 Cells(i, 21).GoalSeek Goal:=750, ChangingCell:=Cells(i, 18) ' Range("Z10:AA25").Select Selection.Copy Range("N10:O25").Select Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False Next Next ' End Sub というマクロで For i = 10 To 25 Range("Z10:AA25").Select Range("N10:O25").Select の3箇所の25という数字を26に書き換えると Cells(i, 21).GoalSeek Goal:=750, ChangingCell:=Cells(i, 18) の箇所がデバックを起こしてしまうのですが考えられる原因、または改善方法があったら教えてください。

  • エクセルのマクロで打ち込んだ数字のより分けをしたいと思い下記のコードで

    エクセルのマクロで打ち込んだ数字のより分けをしたいと思い下記のコードで実行してみたのですが、空白セルを選択したところで砂時計のままになりフリーズしてしまいます。どこが間違っているのでしょうか? ちなみに手動で空白選択部分を右クリック→削除(上方)としてもやはり固まってしまいます。やりたいのはA列にランダムに打ち込んだ数字の5千番台、9千番台をB列、C列に移して空白セルを埋めると言うものです。手動でもだめと言うことは何か別の理由も考えられますでしょうか?使用PCはWIN-XPです。 Sub Sorting1() Dim R As Long For R = 1 To Cells(Rows.Count, "A").End(xlUp).Row If Cells(R, "A").Value >= 5000 And Cells(R, "A").Value <= 5999 Then Cells(R, "B").Value = Cells(R, "A").Value Cells(R, "A").Value = "" End If If Cells(R, "A").Value >= 9000 And Cells(R, "A").Value <= 9999 Then Cells(R, "C").Value = Cells(R, "A").Value Cells(R, "A").Value = "" End If Next R On Error Resume Next Range("A1:C10000").Select Selection.SpecialCells(xlCellTypeBlanks).Select Selection.Delete Shift:=xlUp Range("A1").Select End Sub

  • エクセルで検索と貼り付けのマクロを組みたい

    エクセルで次のようなマクロを組みたいのですがうまくいきません。 ・C5からBB6の範囲において、Aという文字が入っているセルを検索し、その4行下1列右にコピーしておいたものを値だけ貼り付ける。 検索範囲を指定したいのは同じシート内に他にもAという文字が入っているセルがあるからです。このマクロを実行すると何故かC5からBB6の範囲以外のセルを選択し、貼り付けてしまいます。どこがいけないのでしょうか。ぜひ、教えてください。お願いします。 Range("C5:BB6").Select Cells.Find(What:="A", After:=ActiveCell, LookIn:=xlValues,LookAt:= _ xlWhole, SearchOrder:=xlByColumns, SearchDirection:=xlNext, MatchCase:= _False, MatchByte:=False, SearchFormat:=False).select Selection.Offset(4, 1).Select Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _:=False, Transpose:=False

  • エクセル2000マクロエラー

    下記のマクロを実行すると、Sheets(M_KAKOBA(count)).Selectのロジックでインデック スが有効範囲にありません。というエラーメッセージがでます。 エクセルのツール→オプション→全般→新しいシートの数を2から3に変更すると エラーは発生しないのですが、エクセルのツール→オプション→全般→新しいシートの数を2 のままでエラーを出さないようにするには、ロジックを変更すればできるのでしょうか? ロジックの追加方法を教えてください。 Sub 送信() '変数の設定 Dim work, hensu, i, j Windows("加工品.xls").Activate work = Sheets("masta").Cells(3, 6).Text 'シート名の変更 Windows(F_NAME).Activate Sheets(M_KAKOBA(count)).Select ActiveSheet.Name = work Windows("加工品.xls").Activate Sheets(work).Select i = 5 Do i = i + 1 hensu = Cells(i, 5) Loop While hensu <> "" Range(Cells(1, 1), Cells(i + 1, 33)).Select Selection.Copy Windows(F_NAME).Activate Sheets(work).Select Range("a1").Select Selection.PasteSpecial Paste:=xlAll, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False Range("A2").Select End With Selection.BorderAround Weight:=xlThin, ColorIndex:=xlAutomatic ' '行の高さ If Worksheets(work).AutoFilterMode = False Then Range(Cells(5, 1), Cells(i + 1, 31)).Select Selection.AutoFilter End If End Sub

  • Excelでマクロを繰り返したい。

    Excelでマクロを記録したら以下のようになりました このマクロを以下の条件で繰り返したいのですが。 Sub Macro1() '------------- '----------------------- ' Sheets("Sheet1").Select Selection.AutoFilter Field:=4, Criteria1:="=5*", Operator:=xlAnd, _ Criteria2:="<>5@*" Range("A3:A302").Select Selection.Copy Sheets("Sheet2").Select Range("A3").Select Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False Sheets("Sheet1").Select Range("A1").Select Selection.AutoFilter Field:=4, Criteria1:="=6*", Operator:=xlAnd, _ Criteria2:="<>6@*" Range("A3:A302").Select Selection.Copy Sheets("Sheet2").Select Range("B3").Select Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False Sheets("Sheet1").Select Selection.AutoFilter Field:=4, Criteria1:="=7*", Operator:=xlAnd, _ Criteria2:="<>7@*" Range("A3:A302").Select Selection.Copy Sheets("Sheet2").Select Range("A103").Select Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False Sheets("Sheet1").Select Range("A1").Select Selection.AutoFilter Field:=4, Criteria1:="=8*", Operator:=xlAnd, _ Criteria2:="<>8@*" Range("A3:A302").Select Selection.Copy Sheets("Sheet2").Select Range("B103").Select Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False End Sub 条件= Field:は4~35位まで変動します 一連の動作をコピーして手作業で数字を変えてみたのですが プロージャが大きすぎてエラーになってしまいます。 何か良い方法は無いでしょうか?。

  • サッカーもいいけどマクロもねっ

    多分わかる人には簡単な内容だと思いますが・・ Rows("1:1").Select Range("D1").Select ActiveCell.FormulaR1C1 = "=VLOOKUP(RC[-1],Sheet2!R1C1:R1200C2,2,FALSE)" Range("D1").Select Selection.Copy Application.Goto Reference:="R2C4:R65000C4" ActiveSheet.Paste Application.CutCopyMode = False Cells.Select Range("A2").Activate Selection.AutoFilter Selection.AutoFilter Field:=4, Criteria1:="0" End Sub これは「Sheet1にデーター」を入れ 「Sheet2のA列」に調べたい項目を打ち込み Sheet1でマクロの実行をし Sheet1の上の方に調べてる項目が出てくるマクロです 質問は「Sheet2のA列」に調べる項目を打ち込むのではなく 「Sheet2のB列」打ち込みを変更したいのです どこを変えれば良いのでしょうか? 又、A列には「ABC123」と打っているのですが「abc123」の様に小文字にも対応出来る方法はありますか?

  • このコードを実行するとエクセルがフリーズしてしまいます。

    とある為替データファイル(600KB)の編集をマクロで実行したい(何度も新規で編集するため)のですが画面がフリーズしてしまいます。たまに最後まで出来ます。長すぎるのでしょうか。省略できる部分があったら教えて欲しいです。(初心者です) 以下そのまま添付 Sub 画面を固定() Application.ScreenUpdating = False End Sub Sub いち() Call 画面を固定 Cells.Select With Selection.Font .Size = 9 .Strikethrough = False .Superscript = False .Subscript = False .OutlineFont = False .Shadow = False .Underline = xlUnderlineStyleNone .ColorIndex = xlAutomatic End With 'セルの結合を解除・折り返して全体を表示するの解除・文字を左詰で表示 With Selection .WrapText = False .Orientation = 0 .AddIndent = False .ShrinkToFit = False .ReadingOrder = xlContext .MergeCells = False .HorizontalAlignment = xlLeft '(文字を左詰で表示) End With '列の幅 Selection.ColumnWidth = 2.38 '行の幅 Selection.RowHeight = 12 '列の幅を自動調整 Cells.Select Cells.EntireColumn.AutoFit 'A列の調整 Columns("A:A").ColumnWidth = 3 '不要行削除 Range("a:a,c:c,e:H,J:R,T:U,X:AA,AC:AO,AQ:Au,Aw:BB,BD:BG,BI:CC").Select Selection.Delete Shift:=xlToLeft '円マークを取る Cells.Replace What:="\", Replacement:="", LookAt:=xlPart, SearchOrder:= _ xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False '円の列の書式 Range("K:K,I:I").Select Selection.NumberFormatLocal = "#,##0_ ;[赤]-#,##0 " ' 列の入れ替え() '(建時) Columns("G:G").Select Selection.Cut Columns("B:B").Select Selection.Insert Shift:=xlToRight '(建値) Columns("G:G").Select Selection.Cut Columns("C:C").Select Selection.Insert Shift:=xlToRight Columns("H:H").Select Selection.Cut Columns("e:e").Select Selection.Insert Shift:=xlToRight 'スクロールで画面左に戻る ActiveWindow.ScrollColumn = 1 '仕切取引まで行削除 On Error GoTo line x = Application.WorksheetFunction.Match("仕切取引", Columns("A:A"), 0) If x = 1 Then Exit Sub Else Rows("1:" & x - 1).Delete End If Exit Sub line: MsgBox "見当たりません", vbCritical, "(>_<) " '一行目(仕訳取引)削除 Rows("1:1").Select Selection.Delete Shift:=xlUp 'オートフィルタ Rows("1:1").Select Selection.AutoFilter '不要列にかかったフィルタを削除 Columns("L:CE").Select Selection.Delete Shift:=xlToLeft End Sub よろしくお願いします。

専門家に質問してみよう