n-jun の回答履歴
- エクセルVBAマクロですこし変わった合計の方法
添付画像左のように、A列に1~4、4(1)~(3)までナンバーが記入されており、B列C列には数値が含まれているとき、( )が存在している場合のみ( )が存在しないナンバー(例の場合は4)のB列C列に( )があるナンバー(例の場合(1)~(3))の合計を添付画像右がわのように表示させたいとき、どのようなマクロを組めばできますでしょうか。 全てお願いしてしまいますと、コードも長くなってくるのではないかと思われますので、画像では入力シートから表示シートに切り替わっているということですが、入力シートの空白セルへの表示でもかまいません。 ( )つきナンバーのB~後の値を( )なしナンバーのB~後に合計できる方法をお教え頂ければ幸いです。
- ベストアンサー
- Visual Basic
- quindecillion
- 回答数3
- VBA Caseの省略方法
VBA初心者です。 特定範囲で、エンターキーの際にアクティブセルが横方向に移動するマクロを作っています。 しかしプロシーシャが一杯である旨の表示が出てしまいます。 そのプログラムの一部を抜粋します。 Case "B50" Range("C50").Select Case "C50" Range("D50").Select Case "D50" Range("F50").Select Case "F50" Range("G50").Select Case "G50" Range("I50").Select Case "I50" Range("J50").Select Case "B51" Range("C51").Select Case "C51" Range("D51").Select Case "D51" Range("F51").Select Case "F51" Range("G51").Select Case "G51" Range("I51").Select Case "I51" Range("J51").Select Case "B52" Range("C52").Select Case "C52" Range("D52").Select Case "D52" Range("F52").Select Case "F52" Range("G52").Select Case "G52" Range("I52").Select Case "I52" Range("J52").Select Case "B53" Range("C53").Select Case "C53" Range("D53").Select Case "D53" Range("F53").Select Case "F53" Range("G53").Select Case "G53" Range("I53").Select Case "I53" Range("J53").Select これが結構ながく続いております。 Caseの省略方法があればご教授いただければと思います。 なのとぞよろしくお願いします。
- 締切済み
- その他(プログラミング・開発)
- usny-stk
- 回答数2
- どういう意味でしょうか?
男子高校生です。 昨日好きな女子から突然 「今からビックサンダーマウンテン乗るー」というメールがきました。 女友達と一緒にディズニーランドに行ったらしいです。 このメールを送ったわけはなんだと思いますか? 回答お願いします 女性の方の回答いただけるとありがたいです。
- ベストアンサー
- 恋愛相談
- RFshiki_16
- 回答数6
- 複数シートの一定範囲を、他シートの表に貼り付けたい
Win7 Excel2007 でマクロ作成中の初心者です。 複数シートの一定の範囲を、総括表シートの中にある表に貼り付けたいです。 いろいろサイト探しましたが方法がわかりません。どうかご教示おねがいします。 Sub 総括表シートに貼り付け() ' Dim list, sheetName Application.ScreenUpdating = False Const EXCEPT_NAME = "総括表 保管用" For Each sheetName In ActiveWorkbook.Worksheets If InStr(EXCEPT_NAME, sheetName.Name) = 0 Then Sheets(sheetName.Name).Activate ActiveSheet.Unprotect 複貼り付け用部品 ActiveSheet.Protect End If Next End Sub -------------------------------------------- Sub 複貼り付け用部品() ’自動記録のコード 'すべてのシートの Range("AW7:AW34")の範囲を総括表シートに貼り付け '貼り付け位置は、総括表のシートのD列からに順番に貼り付け ActiveSheet.Unprotect Range("AW7:AW34").Select '最初のシート Selection.Copy Range("D4:D31").Select '総括表シートのD列に貼り付け Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False Range("AW7:AW34").Select '2番目のシート Application.CutCopyMode = False Selection.Copy Range("E4:E31").Select '総括表シートのE列に貼り付け Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False Range("AW7:AW34").Select '3番目のシート Application.CutCopyMode = False Selection.Copy Range("F4:F31").Select '総括表シートのF列に貼り付け Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False Range("AW7:AW34").Select '4番目のシート Application.CutCopyMode = False Selection.Copy Range("G4:G31").Select '総括表シートのG列に貼り付け Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False '以下続く End Sub
- 締切済み
- Visual Basic
- aitaine
- 回答数1
- セルの範囲選択
エクセルVBAの質問です。 セルの範囲選択をしたくて色々と試してみたのですが、どうも上手くいかないので教えてください。 「Range("F25:F36")」とした時の「F36」が可変の場合はどうすれば良いのでしょうか? よろしくお願いします。
- 締切済み
- Visual Basic
- noname#207571
- 回答数3
- エクセル マクロ 範囲指定。
先日、OKWAVEのサイトでエクセルマクロの質問をさせていただき 下記の回答を活用したいのでしが myKey = Worksheets("Sheet2").Range("A1").ValueをA1A2・・・A50のように 50個を一度に処理したいのですがどのように変更すればよろしいのでしようか 自分なりに調べてみましたが知識がなくできませんでした ご回答のいただいたmitarashiさんにお聞きしたいのですがお聞きする手段がわからず 再度、質問させていただきます。 宜しくお願いいたします。 Sub test() Dim targetRange As Range Dim buf As Variant Dim i As Long, j As Long, myColorIndex As Long Dim myKey As Variant Application.ScreenUpdating = False Application.Calculation = xlCalculationManual Set targetRange = Worksheets("Sheet1").Range("J10:BB10000") buf = targetRange myColorIndex = 4 myKey = Worksheets("Sheet2").Range("A1").Value With targetRange For i = 1 To UBound(buf, 1) For j = 1 To UBound(buf, 2) If buf(i, j) = myKey Then .Cells(i, j).Interior.ColorIndex = myColorIndex Next j Next i End With Application.ScreenUpdating = True Application.Calculation = xlCalculationAutomatic End Sub
- 締切済み
- Visual Basic
- fukuzawakamon
- 回答数4
- VBAセミナーの選択
初心者向けのVBAセミナーを受講予定です。 選択肢が2つあり、どちらにしようか悩んでます。どちらがいいでしょうか? A 自習型 90分授業×10コマ程度、4万円。おそらくDVD形式だと思います。現地教室へ行き受講します。 講師はちゃんと居るようです。 B セミナー式 1日のみ4万円。講師によるセミナー形式。現地教室へ行き受講。 一般的相場は2日4万円と、上記コースは高めですが目をつぶります。2日連続は不可能なので。 Aの方が時間対費用比率では優れます。しかし終了時の到達レベルが同じならばBの方が効率的です。勝手な目論見ですが、最初のとっかかりはお金を払って受講し、後は必要に応じて自習しようかと思ってます。 私の状況 仕事で使います。エクセルの自動式マクロだけでは限界になり受講します。資格に興味はありません。学生時代の授業でFORTRANや電卓代わりの簡単なBASICプログラムは作ったことがあります。
- ベストアンサー
- オフィス系ソフト
- noname#149824
- 回答数3
- VBAでエクセルのいくつかの表を同じ配列に格納する
VBA初心者です。 調べてみましたがどうにも情報に行きあたらなく、ご質問をさせていただきます。 添付のようなエクセル上の同一シート上にある3つの表をコピーし、VBAで同じ配列の各列として取り込みをしたいと考えております。 大分類、中分類、小分類のそれぞれの行は同じもののそれぞれの内容を記載しており、 できればこれらを同じ配列の1列目、2列目、3列目に格納をしたいと思っております。 これらの表が1つの表にまとまっていれば、 Dim 配列(1,10) as Variant 配列 =range("A1:C10") で事足りると思うのですが、別々のためこの方法がとれません。 セル指定で行うことも考えましたが、データが10万行を超える場合もあるため、できれば避けたいと思っています。 各表を指定し、配列の1列目、2列目、3列目に一括して代入をご存じでしたらら、どうぞ教えていただきたいと思います。 どうぞよろしくお願いします。
- ベストアンサー
- Visual Basic
- chacoloco
- 回答数4
- VBAで、エクセルからワードへの変換について
VBAは、全くの初心者で、テキスト等のサンプルコードを参照して書いているのですが 期待通りの動きをしないので、教えてください。 やりたい事は、Excelファイル(A-Fカラム、400行程度)を 1行ページのワードに変換し、400枚のワードファイルを作成します。 その際に、添付画面のように、各カラムを、タイトル、連番、内容などと区分けをして フォントも変えたいです。 下のコードでは、転送は、出来るのですが、1行1ページにならず、また、 エクセルの枠も転送されてしまいます。 ワードVBAも試したのですが、特定文字での検索が難しく、各ページでの 改行位置が異なるため、自分の理解では出来ませんでした。 ワードでテンプレートを作って、Excel VBAから差込になるのでしょうか? よろしくお願い致します。 Sub CopyExcelDataToWord() Dim wsSource As Excel.Worksheet Dim cell As Excel.Range Dim collUniqueHeadings As Collection Dim lngLastRow As Long Dim i As Long Dim appWord As Word.Application Dim docWordTarget As Word.Document Set wsSource = ThisWorkbook.Worksheets(1) With wsSource lngLastRow = .Range("A" & Rows.Count).End(xlUp).Row Set collUniqueHeadings = New Collection For Each cell In .Range("A2:A" & lngLastRow) On Error Resume Next collUniqueHeadings.Add Item:=cell.Value, Key:=cell.Value On Error GoTo 0 Next cell End With Set appWord = CreateObject("Word.Application") With appWord .Visible = True Set docWordTarget = .Documents.Add .ActiveDocument.Select End With For i = 1 To collUniqueHeadings.Count With wsSource .Range("A1").AutoFilter Field:=1, Criteria1:=collUniqueHeadings(i) .Range("A1:D" & lngLastRow).Copy End With With appWord.Selection .PasteExcelTable linkedtoexcel:=False, wordformatting:=True, RTF:=False .TypeParagraph End With Next i For i = 1 To collUniqueHeadings.Count collUniqueHeadings.Remove 1 Next i Set docWordTarget = Nothing Set appWord = Nothing End Sub
- 締切済み
- Visual Basic
- toshi104_t
- 回答数2
- VBにおける文字列の部分一致検索
部分一致検索のシステムを作ろうと考えているのですが、途中が任意のものを含む部分一致検索が実装できないので、助言をお借りしたいです。 例えばこんなのです↓ 本文(Sentence) The apple which he points is red. フレーズ(pattern) The apple ~ is red この場合The apple ~ is red という流れのフレーズが本文に含まれているので、変数Sentenceに変数patternが含まれると判定し、true結果を示したいです。 result = "aBBBa" Like "a*a"のようにlike文が有用かなとも思ったのですが、文字列を直接入れるような形でないとできないようなので、これでは実用性に欠けてしまいます(複数のフレーズの判定ができないので) 変数に対応した形で実装したいです。 よろしくお願いします。
- 締切済み
- Visual Basic
- komugi1934
- 回答数4
- エクセルマクロ
1月から12月までの合計で、野菜が何個売れたかが知りたいです。 売上は月ごとに出ているのであとは各野菜の各月で売れた個数を足していくだけです。 売れていない月もあります。 エクセルで上記のマクロをくみたいです。 どなたかご教授よろしくお願いいたします。
- 締切済み
- Visual Basic
- kan1kan
- 回答数6
- 正規表現で文字を抜き出したい
-----------------------ファイルの中身----------------------------- 8 個のファイル x,Xxx,xxx バイト ファイルの総数: 12400 個のファイル 419,000 バイト 8000 個のディレクトリ 280,284,000 バイトの空き領域 XXXXXXXX ------------------------------------------------------------------ 上記のものが一つのファイルの中にいくつか存在し、 その中の『ファイル総数:』~『バイトの空き領域』を 正規表現を使用して、VBSで抜き出したいと思っています。、 "ファイルの総数:[^バイトの空き領域]*バイトの空き領域(?=\r)" という正規表現を作成したのですが、うまく動作しません。 どのような正規表現を使用したら良いでしょうか。 どなたか、上記の抜き出す文言を示す正規表現をお教えください。
- ベストアンサー
- Visual Basic
- yosihio700
- 回答数1
- VBS、正規表現でドメインを取りたい。
VBScriptで開発をしています。 文字列からドメインだけを取得したくて、ネットで調べて以下のような コードを書いてみましたが、うまくいきません。 正規表現がうまくマッチしてこないようなのですが、初心者故よくわからず…。 おかしい点、修正すべき点を教えていただけないでしょうか。 Dim reg Set reg = Server.CreateObject("VBScript.RegExp") reg.Pattern = "/^[httpsfile]+:\/{2,3}([0-9a-zA-Z\.\-:]+?):?[0-9]*?\//i" Dim testUrl testUrl = "http://www.test.co.jp/test.html" Set Matches = ObjRegExp.Execute(testUrl) Dim Matches Dim Match Dim StrTest For Each Match in Matches StrTest = Match.value Next
- ベストアンサー
- Visual Basic
- ginfix
- 回答数1
- (Excel2007 VBA)ワークシートのコピー
●質問の主旨 Excel2007において常に複数シートの最後尾のシートをコピーし、 その最後尾のシートの後ろに新しいシート名を付けるには 以下のコードをどのように書き換えればいいでしょうか? ご存知の方よろしくお願いします。 ●質問の詳細 今、「現金出納帳」を作成しています。 「現金出納帳」のファイルの中に以下のように3つのシートが並んでいます。 「23年7月」 「23年8月」 「23年9月」 今月末にはマクロ実行によって「23年9月」のシートをコピーし、 「23年7月」 「23年8月」 「23年9月」 「23年10月」 という並びにしたいと思います。 次月末は「23年10月」の後に「23年11月」のシートをコピーするつもりです。 ●コード Worksheets("23年9月").Copy After:=Worksheets("23年9月") ※使用機種はWindows Vista Excel2007 で、私はVBAの初心者です
- ベストアンサー
- Visual Basic
- dradra33
- 回答数3
- (Excel2007 VBA)ワークシートのコピー
●質問の主旨 Excel2007において常に複数シートの最後尾のシートをコピーし、 その最後尾のシートの後ろに新しいシート名を付けるには 以下のコードをどのように書き換えればいいでしょうか? ご存知の方よろしくお願いします。 ●質問の詳細 今、「現金出納帳」を作成しています。 「現金出納帳」のファイルの中に以下のように3つのシートが並んでいます。 「23年7月」 「23年8月」 「23年9月」 今月末にはマクロ実行によって「23年9月」のシートをコピーし、 「23年7月」 「23年8月」 「23年9月」 「23年10月」 という並びにしたいと思います。 次月末は「23年10月」の後に「23年11月」のシートをコピーするつもりです。 ●コード Worksheets("23年9月").Copy After:=Worksheets("23年9月") ※使用機種はWindows Vista Excel2007 で、私はVBAの初心者です
- ベストアンサー
- Visual Basic
- dradra33
- 回答数3
- マクロについて
お世話になっております。 エクセルで 2009年 2010年 11 11 22 33 33 2009年は11と22と33、2010年は11と33というのがあり、 11は2009年かつ2010年、22は2009年のみ、33は2009年かつ2010年と IF関数をつかって、(A1セルには2009年、B1セルには2020年、A2セルには11、A3セルには22、A4セルには33、B2セルには11、B3セルには33と入力されているとするとき) C列に、B2、B3、B3、C2、C3のすべての番号を重複なしでならべ、D列に、下記の式を入れ、その番号が2009と2010のどのような集合に属しているのかをマクロ式でかきたいのですが、おしえていただけないでしょうか???番号が増えも対応できるものが知りたいです。初心者のためお手数をおかけいたします。 (例)D2セルには, =IF(AND(COUNTIF(A:A,C1)>0,COUNTIF(B:B,C1)>0),A$1&"かつ"&B$1,IF(COUNTIF(A:A,C1)>0,A$1&"のみ","")&IF(COUNTIF(B:B,C1),B$1&"のみ",""))
- ベストアンサー
- Visual Basic
- matuto1110
- 回答数2
- word2003の置換について
以前、複数のword2003の複数のファイルに共通してある文字列を一括して置換する方法を質問させていただきましたが、ファイルの数が100近くあり、回答を下さった方には申し訳ありませんでしたが、うまくいきませんでした。 そこで、別の方法を考えましたが、知識がなく方法がわかりません。どなたかご教授ください。 word2003のファイルを開いた際に、自動的に特定の文字列を置換するマクロは組めないでしょうか? もしくは、上書き保存やファイルを閉じる際に自動的に文字列を置換するマクロはできないでしょうか? 欲を言えば、どのファイルを開いても、設定等を必要とせずに自動実行したいです。 特定の文字列というのは、すべてのファイルに共通している言葉1種類のみです。 例えば、「親」を「子」に置換できればいいのです。 よろしくお願いいたします。
- ベストアンサー
- Visual Basic
- mo10ki
- 回答数2
- 同フォルダ内の串刺し集計と文字列結合のマクロ作成
同じフォルダ内に同じ形式のファイルがいくつかあり、ブック間で数値の串刺し集計と、文字列を結合して集計できるマクロの作成がしたいです。 フォルダ内には各所から送付されてくる同一フォーマット書類『(回答)**.xls』が多数あります。 「**」にはそれぞれの部署名が入っており、シート名は『回答』となっています。 各ファイルの『回答』シート F5~F32セルまでには数値が入力されています。 同じく各ファイルの『回答』シート G5~G32セルまでには文字列が入力されています。 これらを同一フォルダ内にある『集計ファイル.xls』の『集計』シートに集計をしたいのです。 F列は数値なので串刺し集計、G列はそれぞれバラバラの文字列のため「,」で区切って文字を結合をしたいと思っています。 (G列イメージ) あああ,XX,○△△,・・・ このようなマクロを同一フォルダ内にある『集計ファイル.xls』に作成することはできるのでしょうか? よろしくお願いいたします。
- ベストアンサー
- Visual Basic
- chokoy67
- 回答数2
- Excel VBAでファイルからある熟語の削除方法
熟語の一覧表をあらかじめ作成した上で、Excel VBAマクロで別途作成したテキストファイル及びWordファイルから熟語の一覧表にヒットした熟語は削除する方法です。 当方初心者につき、お手数おかけしますがよろしくお願いいたします。
- ベストアンサー
- Visual Basic
- rotawota7
- 回答数2
- メールを返さない女性
ある女性とのメールのやりとりで困っています。 来月に2人で遊びに行こうとメールをしたのですが1週間返ってきません。 以前に会った時になんとなくお互いの予定を合わせて来月に行けたらと言っていました。 その女性とは今までに3回遊びに行っていて次が4回目です。 まだ正式に付き合っているわけではありません。 その女性は会っている時は、また遊びに行きたいと言っています。 それまでは大体1日に1回程度のメール頻度でした。 返してもらっていない状態でさらにこちらから送りたくないのですが気になってしかたありません。 意図的に返していないのかそれとも返さなくて良いと思っているのか返したつもりでいるのか等考えだしたらきりがありませんし本人にしか分からない事だと思います。 ですがこちらからしたら嫌なら嫌とハッキリしてほしいし中途半端で宙に浮いている感じで気持ち悪いです。 また今日も返ってこない返ってこないと考えるのが嫌でしかたないです。 そこで、1週間待ったのでこちらから再度メールを送ってみようと思うのですがどんな感じの内容にするのが無難でしょうか。 全く別の内容でメールするのも良いのですが今回の事にもふれたいですし… これで返ってこなかったらあきらめる事ができるような感じのメールにしたいです。 あまり相手に罪悪感を与えないようにですが。 率直に聞いてもどうせ謝ったり嘘のいいわけをしてくるだけと思いますので難しい問題です。