jcctaira の回答履歴
- Excelマクロ オートフィルター条件設定で不等号を使いたい
Excelマクロ オートフィルター条件設定で不等号を使いたい 請求シートより抽出条件シートに条件を設定し、抽出シートにコピーするマクロ を作成しています。 抽出条件に比較演算子の不等号<>を使った場合、条件が無視されてしまいます。 どのようにしたら良いでしょうか? 請求シートのA列には会社番号が数字4桁で入力されています。 抽出条件シートA5セルに下記の条件を設定した場合、 1と2の場合は上手くフィルターが機能しますが、3の不等号を 使った場合は機能しません。どなたか宜しくお願いします。 1:1000 2:>1000 3:<>1000 Sub テスト() Dim LastRow As Long, LastColumn As Long Dim myData As Range Dim myCriteria As Range With Worksheets("請求") LastColumn = .Cells(5, Application.Columns.Count).End(xlToLeft).Column LastRow = .Cells(Application.Rows.Count, "A").End(xlUp).Row Set myData = .Range("A5", .Cells(LastRow, LastColumn)) End With Set myCriteria = Worksheets("抽出条件").Range("A5").CurrentRegion Worksheets("抽出").Range("A6:R1000").ClearContents myData.AdvancedFilter Action:=xlFilterCopy, CriteriaRange:=myCriteria, _ CopyToRange:=Worksheets("抽出").Range("A5:R5"), Unique:=False Set myData = Nothing Set myCriteria = Nothing End Sub
- ベストアンサー
- その他MS Office製品
- TOGOASK
- 回答数3
- Excel2007 マクロ 特定セルの文字列抽出
Excel2007 マクロ 特定セルの文字列抽出 A列に100行程度、製品番号が入っています。 例えばAAAA-NNN-BBBB-UUUUUUUとある場合に NNNだけを抽出して、B列に転記します。 関数であれば、Mid関数で解決できるのですが、 マクロで解決したいです。 下記を自分で考えたのですが、エラーが発生します。 アドバイスお願いいたします。 Sub moji() Dim last As Long, i As Long Dim strt As Integer 'A列「製品番号」から文字を抽出してB列に反映 last = Range("A65536").End(xlUp).Row For i = 2 To last strt = Mid("A", 7, 3) Cells(i, "B") = strt Next i End Sub
- ベストアンサー
- その他MS Office製品
- hyogara777
- 回答数2
- VBA(多くの数値データの最小値5つを格納する方法)
VBA(多くの数値データの最小値5つを格納する方法) 現在テキストファイルの数値データを取り出し最小値5つを書き出す動作をVBAで行うつもりでいます。 例 5 9 33 11 1 0.3 0.02 ・ ・ ・ ・ といった形の数値データ行がテキストファイルに存在します。 今現在すべての数値データを格納してエクセルに書き出しそれを並び替え最小値5つ(0を除く)を見て作業を行っております。 この作業をより効率化するために、VBAを用いて0を除いた最小値5つをエクセルシートに書き出すようにしたいのですが、VBAの知識が足らず対策が思い浮かびません。 ・VBAで行いたいこと(わからない部分) 格納するデータを5つに設定して、数値データを順次読み込み最終的に数値データ群の最小値5つ(0を除く)を配列に格納している状態にしたい。 初歩的かもしれませんが、ご回答お願いいたします。
- 締切済み
- Visual Basic
- 04145198
- 回答数4
- エクセルで複数の列から複数の文字列(数字)を選びたいです。
エクセルで複数の列から複数の文字列(数字)を選びたいです。 A B C D E F G H 1 12 1 4 5 8 6 2 36 7 2 5 6 3 55 3 4 88 1 3 8 5 87 上記のような表があったとき、C列からG列のいずれかに1、3、8のどれかが 含まれるとき、H列にB列の数字を入れたいのですが、どのようにすれば できるのでしょうか? この場合、A列の1,3,4段にそれぞれ12、55、88と入れたいということです。 よろしくおねがいいたします。
- ベストアンサー
- オフィス系ソフト
- ren-ishizaki
- 回答数8
- Excel2007でxxx以外の条件付き書式を設定するには?
Excel2007でxxx以外の条件付き書式を設定するには? 0と2以外のセルを赤く塗りつぶすため 強調表示ルールで次のような数式を設定しましたが全部赤で塗りつぶされ期待したように機能しません =$B$5<>OR(0,2) 条件付き書式では OR条件を設定できないのでしょうか 数式自体を間違えているのでしょうか 何か良い方法があればアドバイスよろしくお願いします
- ベストアンサー
- その他MS Office製品
- noname#140567
- 回答数4
- お世話になります
お世話になります シートが存在する時だけ処理するマクロを組みたいです。 そこで下記の通り作ってみましたが、上手に動きません。 Sub マクロ() Dim mychksht As Worksheet 1: On Error GoTo 2 Set mychksht = Sheets("1") MsgBox "1 あります" 2: On Error GoTo 3 Set mychksht = Sheets("2") MsgBox "2 あります" 3: On Error GoTo 4 Set mychksht = Sheets("3") MsgBox "3 あります" 4: On Error GoTo 5 Set mychksht = Sheets("4") MsgBox "4 あります" 5: MsgBox "終了します" End Sub シートが2枚不足すると「インデックスが有効範囲にありません」とのメッセージが出ます。 ※1枚不足しているだけなら正常に処理します。 分かる方いらっしゃいますか? 理由と対策をお教え頂ければ幸いです。
- ベストアンサー
- その他MS Office製品
- OKERAUMI
- 回答数1
- エクセルで3D集計の計算式を入力した複数のセルに
エクセルで3D集計の計算式を入力した複数のセルに マクロ等で一度に絶対参照をかけたいのですが、 なにか方法はあるでしょうか?? =SUM(シート1!D9,シート2!D9,シート3!D9,シート4!D9) といったかたちの式が各々入っている複数のセルを一気に =SUM(シート1!$D$9,シート2!$D$9,シート3!$D$9,シート4!$D$9) といったかたちにしたいのです。 ちなみに、ベクターからダウンロードした、 『絶対参照に変換』というフリーソフトを使ってみたのですが、 上手くいきませんでした…。 よろしく御回答お願い致します。
- ベストアンサー
- オフィス系ソフト
- madokaazusa
- 回答数2
- or では大丈夫なのにandではダメな理由は?
or では大丈夫なのにandではダメな理由は? セルA1に2007/10/3を入れ、 2007年ならピンク 2008年なら黄緑 とやろうとして、2つのマクロを作りました。 Macro1では正常に動作するのですが Macro2を実行すると2007/10/3なのに、黄緑になってしまいます。 2008/10/3でMacro2を実行すると何も動きません。 Macro1とMacro2の違いは「or」と「and」の違いだけです。 Sub Macro1() If 39081 >= CLng(Range("a1")) Or CLng(Range("a1")) <= 39447 Then Range("a1").Interior.ColorIndex = 38 ElseIf 39448 >= CLng(Range("a1")) Or CLng(Range("a1")) <= 39813 Then Range("a1").Interior.ColorIndex = 4 End If End Sub Sub Macro2() If 39081 >= CLng(Range("a1")) And CLng(Range("a1")) <= 39447 Then Range("a1").Interior.ColorIndex = 38 ElseIf 39448 >= CLng(Range("a1")) And CLng(Range("a1")) <= 39813 Then Range("a1").Interior.ColorIndex = 4 End If End Sub 「and」なら2007/1/1より大きい なおかつ 2007/12/31より小さい と思い、最初はMacro2を作りましたが、うまくいかない為Macro1を作りました。 でも 「or」だと、2007/1/1より大きい もしくは 2007/12/31より小さい ですよね? 2008/1/1でも「2007/1/1より大きい もしくは 」にヒットしてしまうため、 andにしたのですが、なぜandではうまくいかないのでしょうか? よろしくお願いします。
- エクセル2003を利用しています。
エクセル2003を利用しています。 ジャンプ機能の基本的なことなんですが教えてください。 新規作成したシートで未入力の複数セルを範囲選択し、ジャンプ機能で「空白セル」を選ぶと「該当セルが見つかりません」となります。範囲選択したセル全部が空白セルとして認識されるだろうと思ったのですが、なぜなのでしょうか?
- エクセルのマクロのタイマー機能について
エクセルのマクロのタイマー機能について エクセルのマクロで指定した時間ごとにURLをクリックするマクロを作っています。 下記のように作っていますが、もっと簡略化して短い記述にしたく思います。 URLと指定時間は別のマクロで生成して、URLはA1~A49まで、指定時間はB1~B490までセルに書きこむようにしています。 URLはA49まで読んだらA1から読み直して10往復して、490回使用します。 使用するセルを一回ごとにずらしていくだけなので、簡単に出来そうな気もしますが、マクロ初心者のためわかりません>< 恐れ入りますが、ご教授いただければ幸いです。 ちなみにエクセル2007で作成しています。 Sub 一定の時間間隔でマクロを実行する() '進捗状況を示すために準備する 指定時刻 = Now + TimeValue("0時00分05秒") 待ち時間 = TimeValue("0時00分01秒") Application.OnTime TimeValue(指定時刻), "新規01", TimeValue(待ち時間) End Sub Sub 新規01() Range("A1").Select 'A列のURLを取得 Selection.Hyperlinks(1).Follow NewWindow:=False, AddHistory:=True 指定時刻 = Now + Range("B1").Value 'B列の時間を取得 待ち時間 = TimeValue("0時00分01秒") Application.OnTime TimeValue(指定時刻), "新規02", TimeValue(待ち時間) End Sub Sub 新規02() Range("A2").Select Selection.Hyperlinks(1).Follow NewWindow:=False, AddHistory:=True 指定時刻 = Now + Range("B2").Value 待ち時間 = TimeValue("0時00分01秒") Application.OnTime TimeValue(指定時刻), "新規03", TimeValue(待ち時間) End Sub ↓ 同様の記述を490回繰り返す ↓ Sub 新規建設490() Range("C1").Value = Now & " 終了" End Sub Private Sub 進捗状況を示すために準備する() Cells.Clear Columns("A:A").NumberFormatLocal = "yyyy/m/d h:mm:ss" Range("A1").Select ActiveCell.Value = Now & " 開始 " Columns("A:A").EntireColumn.AutoFit End Sub
- Excel 任意のセルを指定する方法
Excel 任意のセルを指定する方法 こんにちは Excel2003でセルの上を「---」で覆うマクロを作成しました。(以下参照) でもこれはセル「K2」に作成されます。 任意の作成したいセルを「---」で覆うようにするのには どのように改造すればよいでしょうか? おわかりの方お教えください。 ' 透明なセルを一つ作るマクロ ActiveSheet.Shapes.AddTextbox(msoTextOrientationHorizontal, 672.75, 13.5, _ 81#, 13.5).Select Selection.Characters.Text = "---" With Selection.Characters(Start:=1, Length:=3).Font .Name = "MS Pゴシック" .FontStyle = "標準" .Size = 11 .Strikethrough = False .Superscript = False .Subscript = False .OutlineFont = False .Shadow = False .Underline = xlUnderlineStyleNone .ColorIndex = xlAutomatic End With Selection.HorizontalAlignment = xlCenter Selection.ShapeRange.Fill.Visible = msoFalse 'Selection.ShapeRange.Fill.Solid 'Selection.ShapeRange.Fill.Transparency = 0# Selection.ShapeRange.Line.Weight = 0.75 Selection.ShapeRange.Line.DashStyle = msoLineSolid Selection.ShapeRange.Line.Style = msoLineSingle Selection.ShapeRange.Line.Visible = msoFalse Range("K2").Select End Sub
- ベストアンサー
- その他MS Office製品
- sherman
- 回答数2
- Excelマクロである条件のセル間(行方向)に色を付けたい
Excelマクロである条件のセル間(行方向)に色を付けたい 例えば、エクセルのあるセルに"A"が書かれていた場合、次にその行のセルに"円"と書かれているまでは、続く行のセルには色をつけるようにしたいのですが、良い方法を教えて頂けないでしょうか? 対象となるシート(列方向)に、今回のパターンが複数存在し、 それぞれにこの処理を実施することを想定しております。 (イメージ画像を添付します) お恥ずかしい話、当方VBAには明るくありませんので、簡単なサンプルコードを示して頂けると幸いです。
- ベストアンサー
- その他MS Office製品
- sesamin346
- 回答数3
- Excelの sheet1 に、下記の様な表を作成しておいて
Excelの sheet1 に、下記の様な表を作成しておいて A B C 1 東京 1 100 2 東京 2 200 3 千葉 1 300 4 千葉 2 400 sheet2 に、下記の様な入力をした場合 A B C 1 県名 重量 単価 2 東京 2 3 千葉 2 東京のC欄には 200 ・ 千葉のC欄には 400 と、単価が表示されるようにするには、 sheet2 のC欄にはどのような関数を入れればよろしいでしょうか? 関数については素人です。 ご存じの方、何とぞ宜しくお願いします。
- ベストアンサー
- オフィス系ソフト
- sherry0329
- 回答数2
- Excel2003 VBAでタイマーを組んでマクロを走らせたいのですが
Excel2003 VBAでタイマーを組んでマクロを走らせたいのですが、以下のエラーメッセージが出ました。 マクロ "C:\aaa\Timer.xls'!Record1'が見つかりません。 マクロは、Timer.xlsブックのThisWorkbookに記述しています。 ---------------------------------------------------------------------- Sub timer1() 指定時刻 = TimeValue("09:00:00") 終了時刻 = TimeValue("11:00:00") Application.OnTime 指定時刻, "Record1" End Sub ---------------------------------------------------------------------- Sub Record1() Dim sh1, sh2 If TimeValue(Now) >= 終了時刻 Then '終了時刻になら終わる MsgBox "終了時刻になりました。" Application.CutCopyMode = False Exit Sub End If Set sh1 = Worksheets("1") Set sh2 = Worksheets("2") sh1.range("G5:G506").Copy 'コピー sh2.range("Q5:Q506").PasteSpecial Paste:=xlValues Selection.Offset(0, 2).Select '2行ずらす 指定時刻 = Now + TimeValue("00時05分00秒") '5分後 Application.OnTime 指定時刻, "Record1" End Sub ---------------------------------------------------------------------- どこを直せばよろしいのでしょうか? よろしくお願いします。
- ベストアンサー
- その他MS Office製品
- zaq_zaq_zaq
- 回答数3
- Excelマクロであるセル条件を検出、他の決められたセルに色を付けたい
Excelマクロであるセル条件を検出、他の決められたセルに色を付けたい その2 例えば、エクセルのあるセルに"A"が書かれていた場合、次にその列のセルに"A"書かれているまでは、続く列のセルには色をつけるようにしたいのですが、良い方法を教えて頂けないでしょうか? 対象となるシート(列方向)に、今回のパターンが複数存在し、 それぞれにこの処理を実施することを想定しております。 (イメージ画像を添付します)
- ベストアンサー
- その他MS Office製品
- sesamin346
- 回答数3
- VLOOKUP関数をエクセルVBAで使いたいのですが、
VLOOKUP関数をエクセルVBAで使いたいのですが、 式が間違っているのかどうかは分かりませんが実行できませんでした。 式は以下の通り、書きました。 どこが違うかご指摘願います。 よろしくお願いします。。 'VLOOKUPを行う Sheets("過去履歴").Range("BJ6").Value = Application.WorksheetFunction.Vlookup(Sheets("登録書").Range("A2").Value,Sheets("過去履歴").Range("B6:BG65536"),1,0)
- Filter関数を用いた結果、何も検索されなかった場合
Filter関数を用いた結果、何も検索されなかった場合 以下のプログラムを実行したところ、セルはまっさらのまま。 Sub Macro3() Dim a As Variant a = Array(1, 2, 3, 4, 5) ActiveCell.Value = Filter(a, 8) End Sub そこで If Filter(A,8) = "" Then ・・・(1) ActiveCell.Offset(1, 0).value = False Else表示 ActiveCell.Offset(1, 0).value = True endif を書き加えてみましたところ、 実行時エラー'13': 型が一致しません とのエラーが出ます。 (1)を If ActiveCell.value = "" Then と書く分には問題ないのですが、だからと言って、Filter(A,8)の値は""で表せないのですね。 とりあえずこの五行はエラーが出ているので削除しました。 次に ActiveCell.Offset(1, 0).Value = IsEmpty(Filter(A, 8)) を書き加えると、アクティブセルの一つ下は「False」となります。Filter(A,8)では何も抽出されないのですから、空か否かを問われたら「True」のはずなのですが・・・やはり何か戻り値があるのですね・・・ ではエラー値が戻っているのかと ActiveCell.Offset(2, 0).Value = IsError(Filter(A, 8)) を書き加えると、「False」ですからエラー値ではありません。 If Filter(A,8) = Null Then ・・・(2) ActiveCell.Offset(3, 0).value = False Else表示 ActiveCell.Offset(3, 0).value = True endif を書き加えたところ、またも 実行時エラー'13': 型が一致しません とのエラーが出ます。 (2)を If Filter(A,8) = Error Then と書き換えてみても同じです。 試しに(2)を If Cvar(Filter(A,8)) = Null Then としてみたり If Filter(A,8) = Cvar(Null) Then としてみたり If Cvar(Filter(A,8)) = Cvar(Null) Then としてみたりしましたが、同じエラーが出ます。 Ubound(Filter(A,8)の値は-1です。これをもってこの場合の戻り値とするしかないのでしょうか。filter関数の戻り値が分からないからUbound関数を使っていることがモロばれで、嫌なんです。 If Filter(A,8) = なんとか Then のなんとかに入る戻り値をどなたか教えてください。
- ベストアンサー
- Visual Basic
- makoji
- 回答数1
- エクセルVBA テキストに出力、名前を付けて保存
エクセルVBA テキストに出力、名前を付けて保存 A B C D 1 aa bb cc =A1&B1&C1 2 dd ee ff =A2&B2&C2 3 gg hh ii =A3&B3&C3 上記エクセルのD列の内容(セルA1~C3が連続したもの)を1行毎にテキストに出力し、 B列の内容をファイル名にしてテキストファイルを多量に自動生成したいのです。 上記エクセルのように3行なら下記の3つのファイルが生成されるといったVBAがほしいのです。 ファイル名がbb.txtで、テキストの内容はaabbcc。 ファイル名がee.txtで、テキストの内容はddeeff。 ファイル名がhh.txtで、テキストの内容はgghhii。 実際は数千行あるので、数千ファイルを一気に生成させたいのです。 どうぞよろしくお願いいたします。
- ベストアンサー
- オフィス系ソフト
- noname#141201
- 回答数3
- エクセルのマクロについての質問です。
エクセルのマクロについての質問です。 マクロボタンを作成し、発動する際に対象シートがセルに入力された値にしたいのです。 例えば シート名 「メイン」、「1月」~「12月」までの13個存在しているとして。 シート「メイン」のA1に2月と入力されている状態でマクロを発動させた時 シート「メイン」のA2の値をシート「2月」のA1に返すような感じです。 3月と入力されていればシート「3月」のA1に返すような・・・・ 文章力がなくて申し訳ありません。
- ベストアンサー
- その他MS Office製品
- masaking3254
- 回答数2
- エクセルのVBAマクロで隠れシートを表示させる方法について教えて下さい
エクセルのVBAマクロで隠れシートを表示させる方法について教えて下さい。 エクセルで”書式→シート→表示しない”を実行するとエクセルのシートを非表示にすることが出来ます。 逆に”書式→シート→表示する”にすると隠れているシートが表示出来ます。 この非表示のシートを表示させるVBAマクロの記載を教えて下さい。 但し、”Sheets(シート名).Visible = True”の様にシート名を記載すれば非表示のシートが表示されるのは知っています。今回知りたいのは、シート名の分からない全ての非表示のシートを表示させるVBAマクロの記載方法を教えて下さい。
- ベストアンサー
- その他MS Office製品
- Comarch18
- 回答数3