Excel VBA質問箱 IV

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

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


1 / 3840 ページ 前へ→

【82461】Re:INDEX(LINEST( )内に他セルから数値を
発言  ホワッツマイケル  - 25/3/17(月) 20:08 -

引用なし
パスワード
   INDIRECT 関数を調べる
・ツリー全体表示

【82459】Re:挿入画像の削除
お礼  sai  - 25/3/15(土) 12:47 -

引用なし
パスワード
   ▼sai さん:
>▼マナ さん:
>>▼sai さん:
>>>お願いします。
>>>
>>>A1にマクロ登録したボタンを設置しています。
>>>
>>>ではA1の画像まで削除されてしまいます。
>>>ボタンは削除しないとか
>>
>>A1のボタンは、画像(msoPicture)なのでしょうか。
>>オートシェイプ(msoAutoShape)にすればよいのでは?
>
>
>ありがとうございます。
>
>msoAutoShapeにするとjpg画像が削除されず
>msoPictureにするとボタンもjpg共に削除されてしまい
>困っている状況です。


ありがとうございます。
解決しました。
・ツリー全体表示

【82458】Re:挿入画像の削除
発言  sai  - 25/3/15(土) 9:56 -

引用なし
パスワード
   ▼マナ さん:
>▼sai さん:
>>お願いします。
>>
>>A1にマクロ登録したボタンを設置しています。
>>
>>ではA1の画像まで削除されてしまいます。
>>ボタンは削除しないとか
>
>A1のボタンは、画像(msoPicture)なのでしょうか。
>オートシェイプ(msoAutoShape)にすればよいのでは?


ありがとうございます。

msoAutoShapeにするとjpg画像が削除されず
msoPictureにするとボタンもjpg共に削除されてしまい
困っている状況です。
・ツリー全体表示

【82457】Re:挿入画像の削除
発言  マナ  - 25/3/14(金) 19:56 -

引用なし
パスワード
   ▼sai さん:
>お願いします。
>
>A1にマクロ登録したボタンを設置しています。
>
>ではA1の画像まで削除されてしまいます。
>ボタンは削除しないとか

A1のボタンは、画像(msoPicture)なのでしょうか。
オートシェイプ(msoAutoShape)にすればよいのでは?
・ツリー全体表示

【82456】挿入画像の削除
質問  sai  - 25/3/14(金) 16:06 -

引用なし
パスワード
   お願いします。

A1にマクロ登録したボタンを設置しています。

そのボタンから複数のjpg画像を挿入しています。

シートをクリアするための動作を考えていましたが

Dim Pic As Shape

For Each Pic In .Shapes
   If Pic.Type = msoPicture Then
   Pic.Delete
   
  End If
Next

ではA1の画像まで削除されてしまいます。

A1以外の画像を削除するとか
ボタンは削除しないとか
或いはjpgだけを削除するとか

良い方法がありましたらご指導願います。
・ツリー全体表示

【82454】INDEX(LINEST( )内に他セルから数値を
質問  本田 達穂 E-MAIL  - 25/3/11(火) 12:32 -

引用なし
パスワード
   =INDEX(LINEST($C$14:C$200,$D$14:$F$200),1)で近似式を作成していますが、これをツール化する際、上記式内の数値200を、他のセル例えばA2セルに出力された数値200を自動的に入れたいのですが、どうしてもうまく行きません。

方法があれば、是非ご教授いただければ幸いです。
・ツリー全体表示

【82453】Re:複数の指定された項目を転記したい
回答  jindon  - 25/2/24(月) 13:04 -

引用なし
パスワード
   ▼初心者です。 さん:
>Aシート(元データ)
>1行目(A列〜AA列):項目   ⇽ 名前、電話、住所、県、市  など項目があります。
>2行目以降は項目ごとのデータがある
>
>Bシート(抽出先)
>1行目(A列〜Z列):項目 ⇽ 住所、県、電話、県  
>2行目以降に、該当する項目のデータを貼り付けたい

AdvancedFilterで一発...

Sub test()
  Sheets("b").[a1].CurrentRegion.Offset(1).Clear
  Sheets("a").[a1].CurrentRegion.AdvancedFilter 2, , _
    Sheets("b").[a1].CurrentRegion
End Sub
・ツリー全体表示

【82452】Re:複数のExcelに関数いれて集計したい
お礼  さかな  - 25/1/31(金) 18:02 -

引用なし
パスワード
   ▼マナ さん:
>▼さかな さん:
>
>
>Power Queryを使うことを推奨します


ご確認ありがとうございます
パワークエリは触ったことなかったので、やりたい事が実現できるか確認してみます!
・ツリー全体表示

【82451】Re:複数のExcelに関数いれて集計したい
発言  マナ  - 25/1/28(火) 18:15 -

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


Power Queryを使うことを推奨します
・ツリー全体表示

【82450】Re:複数のExcelに関数いれて集計したい
回答  さかな  - 25/1/28(火) 16:50 -

引用なし
パスワード
   ▼マナ さん:
>▼さかな さん:
>
>>4、各列の合計値を別のExcelに一覧として記載したい
>
>一覧というのがイメージできません。
>レイアウトがわかるように例示できませんか。


一覧とは、以下みたいにExcel内で集計したデータをまとめた
表というイメージです

フォルダ内
CSVファイル1 関数いれて集計
CSVファイル2 関数いれて集計
CSVファイル3 関数いれて集計
CSVファイル4 関数いれて集計


別のExcel(上記のCSVファイルに関数いれて集計した数値をまとめる表)
※どのCSVがどんな内容だったかを一目でみたく一覧化したい要望です

「CSVデータ1のファイル名)」 CSVに関数いれて集計した数値(Q列合計・R列合計・S列合計)
「CSVデータ2のファイル名)」 CSVに関数いれて集計した数値(Q列合計・R列合計・S列合計)
「CSVデータ3のファイル名)」 CSVに関数いれて集計した数値(Q列合計・R列合計・S列合計)
「CSVデータ4のファイル名)」 CSVに関数いれて集計した数値(Q列合計・R列合計・S列合計)
・ツリー全体表示

【82449】Re:複数のExcelに関数いれて集計したい
発言  マナ  - 25/1/28(火) 13:15 -

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

>4、各列の合計値を別のExcelに一覧として記載したい

一覧というのがイメージできません。
レイアウトがわかるように例示できませんか。
・ツリー全体表示

【82448】複数のExcelに関数いれて集計したい
質問  さかな  - 25/1/28(火) 12:04 -

引用なし
パスワード
   VBAについて詳しくないのですが、以下がVBAで実現できないかなと思い相談させて頂きたいです

------------------------------------
当方のレベル:かなり初心者(コード等は自分でつくれないレベル)
------------------------------------
要望
・概要+背景
 複数の形式が同じのCSVのデータを集計する為に
 現状、200くらいあるCSVファイルを1つ1つ開いて、
 指定の関数を入れて集計された数値の合計を手作業で一覧表に転記していっています
 RPAも検討しましたが、費用が高額で断念しました、、、
 VBAで実現できないか、アドバイス頂きたいです、、


・詳細
1、1つのフォルダ内にファイル名の違う複数CSVファイルあり(200ファイルくらい)
2、CSVの形式(列・項目)は同じですが、CSVによって行数が異なります
3、CSV内に以下の指定のセルに関数を入れ込む
  セルQ2…=IF(AND(B2="IP間呼",H2="IP(有料)"),L2,"0")
  セルR2…=IF(B2="IP間呼","0",L2)
  セルS2…=IF(B2="IP間呼",L2,"0")
  ※行数が複数あるので、関数いれた後に最終行までオートフィルしたい
4、各列の合計値を別のExcelに一覧として記載したい
・ツリー全体表示

【82447】Re:エクセル シートを増やすと VBA の速...
発言  westwindow  - 25/1/27(月) 12:46 -

引用なし
パスワード
   ▼ふぇふぇ さん:
>シートをコピーしてあるけど名前定義もそのままですよね?
>それと、いちいちセルを選択するだけでも遅くなる
>数式の使用は?
>とまあ、なんとなくそう感じました
>では

ご指摘ありがとうございます。
・ツリー全体表示

【82446】Re:エクセル シートを増やすと VBA の速...
発言  ふぇふぇ  - 25/1/27(月) 9:41 -

引用なし
パスワード
   シートをコピーしてあるけど名前定義もそのままですよね?
それと、いちいちセルを選択するだけでも遅くなる
数式の使用は?
とまあ、なんとなくそう感じました
では
・ツリー全体表示

【82445】Re:エクセル シートを増やすと VBA の速...
発言  westwindow  - 25/1/27(月) 1:34 -

引用なし
パスワード
   ▼マナ さん:
>▼westwindow さん:
>
>シート1つの場合と2つの場合で
>どのステップで時間に違いがでるか
>調べてみてがいかがでしょうか。

ご指摘ありがとうございます。
・ツリー全体表示

【82444】Re:複数の指定された項目を転記したい
発言  マナ  - 25/1/26(日) 22:24 -

引用なし
パスワード
   ▼初心者です。 さん:

コピペを繰り返すほうが、簡単でしたね。

Sub test2()
  Dim wsFrom As Worksheet, wsTo As Worksheet
  Dim rngFrom As Range, rngTo As Range
  Dim c As Range
  Dim m
  
  Set wsFrom = Worksheets("A")
  Set rngFrom = wsFrom.Cells(1).CurrentRegion
  Set rngFrom = Intersect(rngFrom, rngFrom.Offset(1))

  
  Set wsTo = Worksheets("B")
  wsTo.UsedRange.Offset(1).ClearContents
  Set rngTo = wsTo.Cells(1).CurrentRegion
  
  For Each c In rngTo
    m = Application.XMatch(c, rngFrom.Rows(0))
    If IsNumeric(m) Then
      rngFrom.Columns(m).Copy
      c.Offset(1).PasteSpecial xlPasteValues
    End If
  Next
  Application.CutCopyMode = False
  
  rngTo.CurrentRegion.Columns(1).SpecialCells(xlCellTypeBlanks).Value _
    = Application.Sequence(rngFrom.Rows.Count)
   
End Sub
・ツリー全体表示

【82443】Re:複数の指定された項目を転記したい
発言  マナ  - 25/1/26(日) 21:34 -

引用なし
パスワード
   ▼初心者です。 さん:

>ただ、貼り付けのBシートは、B列から項目があり、
>A列には貼り付けたデータのナンバリングが入ります。

ナンバリングの意味がわかりませんが?


Sub test()
  Dim wsFrom As Worksheet, wsTo As Worksheet
  Dim rngFrom As Range, rngTo As Range
  Dim app As Application
  Dim v, k, m
  Dim n As Long
  
  Set wsFrom = Worksheets("A")
  Set rngFrom = wsFrom.Cells(1).CurrentRegion
  Set rngFrom = Intersect(rngFrom, rngFrom.Offset(1))
  v = rngFrom.Resize(, rngFrom.Columns.Count + 1).Value
  
  Set wsTo = Worksheets("B")
  wsTo.UsedRange.Offset(1).ClearContents
  Set rngTo = wsTo.Cells(1).CurrentRegion
  
  Set app = Application
      
  m = app.XMatch(rngTo.Value, rngFrom.Rows(0))
  m = app.IfError(m, UBound(v, 2))
  n = UBound(v, 1)
  
  v = app.Index(v, app.Sequence(n), m)
 
  Set rngTo = rngTo.Rows(2).Resize(n)
  rngTo.Value = v
  rngTo.Columns(1) = app.Sequence(n)
   
End Sub
・ツリー全体表示

【82442】Re:エクセル シートを増やすと VBA の速...
発言  マナ  - 25/1/26(日) 21:11 -

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

シート1つの場合と2つの場合で
どのステップで時間に違いがでるか
調べてみてがいかがでしょうか。
・ツリー全体表示

【82441】Re:エクセル シートを増やすと VBA の速...
発言  westwindow  - 25/1/26(日) 19:45 -

引用なし
パスワード
   ▼マナ さん:
>▼westwindow さん:
>
>>速度アップの対応を行っています。それでもシートを増やすとその現象は起こります。
>
>速度アップの対応とはリンク先の方法でしょうか。
>提示いただいたコードに記述がないので、念のため確認しています。

申し訳ありません。
表示しているコードは表示の上限1000文字を超えるためかなりカットしています。

表示させない処理、イベント発生させない処理は行っています。計算処理をさせない処理も試しましたが殆ど効果がなかったので使用していません。
・ツリー全体表示

【82440】Re:複数の指定された項目を転記したい
回答  初心者です。  - 25/1/26(日) 10:13 -

引用なし
パスワード
   ▼マナ さん:
>▼初心者です。 さん:
>
>>Aのシートの項目は、列番号不規則で抽出されるため、
>>『名前の項目は、B列』と確定していない
>
>
>AシートのデータはA列からで間違いないですか。
はい!間違いないです。
ただ、貼り付けのBシートは、B列から項目があり、A列には貼り付けたデータのナンバリングが入ります。

>転記したい項目がAシートにないこともありえますか。
そうなんです。Aシートのデータはシステムから抽出されたもので、ない可能性もあります。
複雑で申し訳ございませんm(_ _)m
・ツリー全体表示

1 / 3840 ページ 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free