Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


242 / 3841 ページ ←次へ | 前へ→

【77615】Re:他のブックへのシートコピー
発言  マナ  - 15/11/8(日) 14:13 -

引用なし
パスワード
   ▼のんぼ さん:

1)複数シート、複数ブックを扱う場合は、どのブックの、どのシートを操作したいかわかるように、ブック、シート指定する
2)Aのブック(マクロを書いてあるブック)は、ThisWorkbookで指定可能
3)Bのブックは、開いた時に変数にセットしておくと、ブックの指定に使える
4)新規シートを追加して、そこにすべてのデータをコピーするなら、最初からシートのコピーだけでよいです

例えばこんな感じ

Sub test2()
  Dim vntfilename As Variant
  Dim wb As Workbook
  
  vntfilename = Application.GetOpenFilename( _
    filefilter:="エクセルファイル(*.xlsx),*.xlsx")
  If vntfilename = False Then Exit Sub
  
  Set wb = Workbooks.Open(vntfilename)

  ThisWorkbook.Worksheets("Sheet2").Copy after:=wb.Worksheets(1)
  
End Sub
・ツリー全体表示

【77614】Re:他のブックへのシートコピー
発言  γ  - 15/11/8(日) 11:11 -

引用なし
パスワード
   ブック ー シート ー セル範囲 という階層構造を
理解されるとよいでしょう。
途中のシート以下を指定した場合、
アクティブなブックが対象となります。
そのことを念頭に置いて下さい。

新たに質問を建てていますが、
前のスレッドは放置なんですか?
折角コメントを寄せて下さったかたに失礼では?
>VBA初心者です。
いくらVBA初心者でもそれは関係ありません。
マナーは守りましょうよ。

また、質問にあたっては、コードの部分を恣意的に取り出すのではなく、
できるだけ全体を示した方がよいと思いますよ。
・ツリー全体表示

【77613】他のブックへのシートコピー
質問  のんぼ  - 15/11/8(日) 11:00 -

引用なし
パスワード
   VBA初心者です。
Aのブック(マクロ)から、
Dim vntfilename As Variant
  vntfilename = _
    Application.GetOpenFilename( _
    filefilter:="エクセルファイル(*.xlsx),*.xlsx" & _
Bのブックを取得して、
  Dim ws As Worksheet
  ActiveSheet.UsedRange.Select
   Next Sht
   Worksheets.Add after:=Worksheets(1)
   ActiveSheet.Name = "追加"
シートを追加します。
Aのブック(Shet2)をBのブック(追加シート)にコピーしたいのですがうまくいきません。試した構文
Dim ws As Worksheet
  Set ws = Worksheets("sheet2")
  Worksheets("sheet2").Range("a1:l21").Copy
  Worksheets("追加").Range("a1").PasteSpecial Paste:=xlPasteA
エラーが発生します。
どなたかご教授願います。
・ツリー全体表示

【77612】Re:エクセルVBAシートのコピー
発言  マナ  - 15/11/6(金) 20:14 -

引用なし
パスワード
   ▼のんぼ さん:

うまくいかなかったというコードを見ていませんので
どこに躓いているのかがわかりません。

Sub test()
  Dim nWS As Worksheet
  
  Set nWS = Workbooks("B").Worksheets.Add()
  ThisWorkbook.Worksheets("Sheet2").Range("B3:C5").Copy nWS.Range("B3")
   
End Sub
・ツリー全体表示

【77611】Re:エクセルVBAシートのコピー
発言  β  - 15/11/5(木) 21:25 -

引用なし
パスワード
   ▼のんぼ さん:

タイトルにある 【VBAシートのコピー】や、質問文内の
【データを集計するプロシジャ】という文言と【A(マクロ)ファイルのシートをBファイルに追加】
という文言との整合性というか、関連性が理解できません。
また、【ADDメソッドでシートを1つ追加します。】??
あぁ、そうですかというしかないです。
シートをADDすることと、質問している内容との整合性というか関連性も理解できません。

何を、どこにどうしたいのか、具体的な説明が必要かと思いますよ。
・ツリー全体表示

【77610】エクセルVBAシートのコピー
質問  のんぼ E-MAIL  - 15/11/5(木) 20:24 -

引用なし
パスワード
    VBA初心者です。

 Aファイル(マクロ)から、GetOpenfilenameメソッドでBファイル(通常のExcel)を取得します。マクロファイルには、データを集計するプロシージャが記載されています。ADDメソッドでシートを1つ追加します。ここまではできています。
 次が問題なのですが、A(マクロ)ファイルの(workSheet2)を取得したBファイルの追加したしたシートにコピーペーストしたいのです。いろいろ試したのですが
うまくいきません。ご教授いただければと思います。拙い文書でもうしわけありません。よろしくお願いします。
・ツリー全体表示

【77609】Re:膨大な件数を区分けしたいです
発言  マナ  - 15/11/3(火) 22:57 -

引用なし
パスワード
   ▼あぶ さん:

念のため確認です
ここも変更しましたか?

>Dim StrTime As String を Dim StrTime As Date
・ツリー全体表示

【77608】Re:膨大な件数を区分けしたいです
お礼  あぶ  - 15/11/3(火) 22:36 -

引用なし
パスワード
   そうですか、ありがとうございました。
・ツリー全体表示

【77607】Re:膨大な件数を区分けしたいです
発言  あぶ  - 15/11/3(火) 22:35 -

引用なし
パスワード
   ▼β さん:
>▼あぶ さん:
>
>M列を文字列にして実行してみましたが、私の改訂版では
>正しく 2 と 3 になります。
>
>N列が文字列というのはどういうことでしょう。
>数値ではないということですか?
>
>で、そちらでは、どんな結果になっているんですか?

数値なんですけど、業者が全部文字列でデータを作っているのです
・ツリー全体表示

【77606】Re:膨大な件数を区分けしたいです
発言  β  - 15/11/3(火) 22:34 -

引用なし
パスワード
   ▼あぶ さん:

明日、早朝から2日間ほど外出します。
もしかしたら、当分の間、フォローできないかもしれません。
・ツリー全体表示

【77605】Re:膨大な件数を区分けしたいです
発言  β  - 15/11/3(火) 22:31 -

引用なし
パスワード
   ▼あぶ さん:

M列を文字列にして実行してみましたが、私の改訂版では
正しく 2 と 3 になります。

N列が文字列というのはどういうことでしょう。
数値ではないということですか?

で、そちらでは、どんな結果になっているんですか?
・ツリー全体表示

【77604】Re:膨大な件数を区分けしたいです
発言  あぶ  - 15/11/3(火) 22:27 -

引用なし
パスワード
   M列のデータ、文字列です。
・ツリー全体表示

【77603】Re:膨大な件数を区分けしたいです
質問  あぶ  - 15/11/3(火) 22:25 -

引用なし
パスワード
   ▼β さん
質問間違っていました。
M列が文字列で"00:00:26"などです。
N列が1〜3までの文字列です。
・ツリー全体表示

【77602】Re:膨大な件数を区分けしたいです
発言  β  - 15/11/3(火) 22:24 -

引用なし
パスワード
   ▼あぶ さん:

当方の検証結果を以下に。

小さなデータをつくりました。
     M列 N列
2行目 0:01:30    1
3行目 0:00:20    1
4行目 0:02:40    1
5行目 0:00:59    1
6行目 0:00:35    1

そちらのコードで実行。 AU3 が 5、AU4 が 0。
私がアップした修正版では AU3 が 2、AU4 が 3 でした。

そちらのM列のデータ型、もしかして文字列なんでしょうか?
・ツリー全体表示

【77601】Re:膨大な件数を区分けしたいです
発言  β  - 15/11/3(火) 22:12 -

引用なし
パスワード
   ▼あぶ さん:
>さて、結果ですが、私が作ったものと同じ結果になってしまいました。
>これであってるのか?と思いたくなるくらいです。

つまり、変更しても正しい結果ではなかったということですね。

M列の時刻のデータは、どんな形式なんですか?
・ツリー全体表示

【77600】Re:膨大な件数を区分けしたいです
質問  あぶ  - 15/11/3(火) 22:07 -

引用なし
パスワード
   不勉強ですみません。色々アドバイスありがとうございます。
さて、結果ですが、私が作ったものと同じ結果になってしまいました。
これであってるのか?と思いたくなるくらいです。
・ツリー全体表示

【77599】Re:膨大な件数を区分けしたいです
発言  β  - 15/11/3(火) 21:53 -

引用なし
パスワード
   ▼あぶ さん:

まず、エクセルでは、横方向に伸びるセル群、これを【行】と呼びます。
この行が縦に何行もあるわけですね。
で、縦方向に伸びるセル群を【列】と呼びます。
この列が横に何列もあって、A列、B列、C列 あるいは 1列目、2列目、3列目 と呼びます。

「13行目に」ではなく「13列目に」ですね。もっとわかりやすく、「M列に」と書いてもらったほうがいいでしょうね。

さて、そのM列の時間ですが、ここは文字列で記入されているのですか?
それとも、時間という数値(いわゆる日付型)ですか?

Dim StrTime As String を Dim StrTime As Date
If StrTime >= "00:01:00" Then を If StrTime >= TimeSerial(0,1,0) Then
にすると、どうなりますか。

それと、テーマとは離れますが、

Cells(VarGyou, 13) これは Cells(VarGyou, "M") と記述できますし、そのほうがわかりやすいかもしれません。

少なくとも、Cells(3, 47) これは、Cells(3, "AU") のほうがわかりやすいですし、
さらにいえば Range("AU3") が、そのものずばりで、コードを見た人が悩まなくても済むと思いますが。
・ツリー全体表示

【77598】膨大な件数を区分けしたいです
質問  あぶ  - 15/11/3(火) 21:26 -

引用なし
パスワード
   膨大な時間と数値の情報で、13行目に通話時間、14行目に通話結果(通話、不応答、話中)というデータがあります。
1分以上通話した数、1分以内の数を出したいので、下記のプログラムを作りましたが、期待する数値が出てきません。どこかおかしいかわかりません。
つたない説明で申し訳ないですが、教えてください。

Private Sub CommandButton3_Click()

Dim VarGyou As Variant
Dim StrTime As String
Dim VarCount_On As Variant
Dim VarCount_Off As Variant
VarCount_On = 0
VarCount_Off = 0
VarGyou = 1
  Do
    VarGyou = VarGyou + 1
    If Cells(VarGyou, 13) = "" Then
      Exit Do
    End If
    If Cells(VarGyou, 14) = 1 Then
      StrTime = Cells(VarGyou, 13)
       If StrTime >= "00:01:00" Then
        VarCount_On = VarCount_On + 1
      Else
        VarCount_Off = VarCount_Off + 1
      End If
    End If
  Loop
  Cells(3, 47) = VarCount_On
  Cells(4, 47) = VarCount_Off
End Sub
・ツリー全体表示

【77597】Re:IEの検索方法
お礼  Satsuki  - 15/10/31(土) 22:28 -

引用なし
パスワード
   ▼γ さん:
> レベルが低くて悪かったですね。
2つ前の投稿で「γさんのようなスキルの高い方々」と書いております。
どうぞ誤解なきようお願いいたします。

> スクリプトが動いて入力したものを検査しているのでしょうけど、
> 手入力と全く同じものをセットして、一定の時間待ちをすれば解決するかも
> しれないが、それこをそういうものは中身を見ないと確実なことは
> 言えないと思う。
アドバイスありがとうございます。もう一度確認してみます。

> 自分だけ情報を持っていて、他人になんらかのことを求めるのは
> やめたほうがいいと思う。
了解いたしました。今後気を付けます。
・ツリー全体表示

【77596】Re:負荷のなくシートないのデータを取得...
お礼  Show  - 15/10/31(土) 11:23 -

引用なし
パスワード
   ▼β さん:
お礼が遅くなって申し訳ありません。確かにうまく行きました。ありがとうございます。

フィルタの掛かっている状態を記憶するような周りくどいことせずにすみました。本当に助かりました。
・ツリー全体表示

242 / 3841 ページ ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free