Excel VBA質問箱 IV

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

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


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

【75663】処理する毎に変わるvlookupでの参照値
質問  インフェルエンス  - 14/6/9(月) 15:11 -

引用なし
パスワード
   お世話になっております。

環境は、windows7 pro , microsoft office 2013です。

・ファイル
1.参照データ.xls
2.Format.xls
→VLOOKUPで参照データ.xlsからデータを参照しています。
→INDIRECT関数を利用しているので、空白(エラー値)になっています。
→INDIRECT関数を利用していない式もあります(値を参照しています。)
3.新Book.xls

・処理
Addした新Book.xlsにFormat.xlsのシートをコピーして、
参照データを読み取り専用で開き、新Book.xlsに参照データを表示させる。
表示させた参照データを新Book.xlsに値貼り付けする。


同じファイルで同じ処理をしても
問題なく全ての値が貼り付けされている場合や、
INDIRECT関数を利用していない式の場所(不特定)の値が空白になっています。
↑なったりならなかったりします。

値貼り付けをせずに処理をした場合でも、同じように空白になったり、
データを参照していたりします。
空白になっているセルをダブルクリックしてからEnterすると(再計算)、
値は正常に参照されます。

問題の原因や解決方法をお解りの方がいればご教示ください。
・ツリー全体表示

【75662】Re:同じフォルダ内での作業について
発言  kanabun  - 14/6/9(月) 14:38 -

引用なし
パスワード
   ▼マリモ さん:

>1つのフォルダ内に元となるエクセルシートがあり、
>1行目にフィルタがかけてあります。
>A列は「月」B列は「日」C列は「番号」が入っており、
>その横にD列、E列、F列に数字が入っております。
>
>同じフォルダ内に
>月_日_番号_○○○.xlsxというエクセルシートが沢山入っており、
>その個々のエクセルシートに
>A列、B列、C列のフィルタを選択したときの
>D列、E列、F列をコピーし、それを全てのシート固定のところ、例えばH列2〜4行目に
>縦横逆に貼り付けをする作業を
>このvbaで処理することは可能でしょうか。

可能です。
元となる表にたいして A列を「月」で、同時に、B列を「日」で、
また同時にC列に対して「番号」でAutoFilterをかければいいのです。

フィルタで抽出したデータを貼りつける 月_日_番号 のxlsxファイルを
あらかじめ開いておいて、
フィルタをかけて抽出された行のうち、
> D列、E列、F列をコピーし、それを全てのシート固定のところ、
> 例えばH列2〜4行目に
> 縦横逆に貼り付けをする作業を
マクロの記録をとってみてください。
特定の 月_日_番号 の抽出転記 の基本コードが得られたら、
あとは 表にあるすべての 月_日_番号 パターンを調べて それをLoopで
回せばいいことになります。
・ツリー全体表示

【75661】同じフォルダ内での作業について
質問  マリモ  - 14/6/9(月) 9:43 -

引用なし
パスワード
   こんにちは
お世話になっておりますマリモと申します。
よろしくお願いいたします。

1つのフォルダ内に元となるエクセルシートがあり、
1行目にフィルタがかけてあります。
A列は「月」B列は「日」C列は「番号」が入っており、
その横にD列、E列、F列に数字が入っております。

同じフォルダ内に
月_日_番号_○○○.xlsxというエクセルシートが沢山入っており、
その個々のエクセルシートに
A列、B列、C列のフィルタを選択したときの
D列、E列、F列をコピーし、それを全てのシート固定のところ、例えばH列2〜4行目に
縦横逆に貼り付けをする作業を
このvbaで処理することは可能でしょうか。
ご存知の方がいらっしゃいましたら、お教えいただけるとありがたいです。

ちなみにSheetは全てSheet1になります。
・ツリー全体表示

【75660】Re:表を5行ごとにコピー
回答  γ  - 14/6/8(日) 0:09 -

引用なし
パスワード
   勝手に想像してコードを書くと、以下のようになるかもしれません。

ただ、もっと大切なことは、表の正しい使い方を実践することです。
こうしたことは、表を複雑にするだけで、悪い方向に進んでいます。

今後、この表を使って分析などに使用するなら、
非常に使い勝手が悪い物になり、手に負えなくなります。
こうしたことは避けた方がいいです。

(1)見出し部分はともかく、データ部分にはセル結合は使わない。

5 リンゴ  | 2個
6 リンゴ  | 4個
7 リンゴ  | 8個
8 みかん  | 1個
9 ぶどう  | 3個
10 ぶどう  | 5個
とすべきです。

(2)同一種類のデータなら、一列で管理すべき。
  複数列に分けてしまうと、ソートだとか、削除、追加が発生したときに、
  面倒なことになります。

-----------------------------------
使わない方がいいと思うが、一応コードを示しておきます。
こうしたコードにトライするよりも、表の正しい使い方をマスターすることを
勧めます。


Dim r0     As Range
Dim r1     As Range
Dim fromRange  As Range
Dim toRange   As Range

Sub test()
  Dim lastRow As Long

  lastRow = Cells(Rows.Count, 2).End(xlUp).Row
  
  '最初の5コをコピー
  Set r0 = Range("B2")
  Set toRange = Cells(2, 5)
  Call myCopy
  
  Do
    Set r0 = r1.Offset(1)
    Set toRange = toRange.Offset(0, 3)
    Call myCopy
    If r1.Row >= lastRow Then Exit Do
  Loop
End Sub

Function myCopy()
  Dim j As Long

  Set r1 = r0
  For j = 1 To 4
    Set r1 = r1.Offset(1)
  Next
  Set fromRange = Range(r0.MergeArea, r1.MergeArea)
  ' そのままコピーペイスト
  fromRange.Resize(, 2).Copy toRange
End Function
・ツリー全体表示

【75659】Re:画像の一括挿入
お礼  ちゃぷ  - 14/6/7(土) 18:19 -

引用なし
パスワード
   γさんへ

何とか思い通りに出来ました。ありがとうございました。
不勉強なため、不透明な質問となりましたことを
ご容赦願います。

▼γ さん:
>焦点を絞って質問して下さい。
>
>ActiveSheet.Pictures.Insert(strFolder & Me.ListBox1.List(i)).Select
>のところが不明なのですか?    
>  With ActiveSheet.Pictures.Insert(Filename:=myFileName)
>    .Top = ActiveCell.Top
>    .Left = ActiveCell.Left
>  End With
>を参考にして書き換えるということですか?
>フォルダ名と("\"を間にはさんで)ファイル名を連結したパス名を
>引数に与えればよいと思います。
>そして、
>画像のtop位置を アクティブセルのtop位置に合わせ、
>画像のLeft位置を アクティブセルのLeft位置に合わせるという処理を
>すればいいわけですよね。
>
>ActiveCellが正しくセットされているのか、
>そもそもどこにセットしたいのか、など説明がないので、
>さっぱり解りません。そこは問題ないんですね?
・ツリー全体表示

【75658】Re:表を5行ごとにコピー
発言  γ  - 14/6/6(金) 22:17 -

引用なし
パスワード
   ▼むん さん:
作業前で、結合されているセルはどこですか?
B5:B7、B9:B10ということですか?

>B列は題名みたいなもので、例えば‥
>
>   B      C
>5      | 2個  
>6 リンゴ  | 4個
>7      | 8個
>8 みかん  | 1個
>9 ぶどう  | 3個
>10      | 5個


>結合セルを5個づつ、一つ空白セルを作りズラしていきたいのです。
>
>   B      C   D   E   F
>5      | 2個 |  | B列の| 
>6 リンゴ  | 4個 |  | 5行目|
>7      | 8個 |  | から |
>8 みかん  | 1個 |  |   |
>9 ぶどう  | 3個 |  |   |
>10      | 5個 |  |   |
>
>BC5行 EF5行 HI5行。。

仕上がりの状態を記載してください。
結合セルはやめたほうがいいと思いますが、
もしあるなら、上記と同様に結合セルを示して下さい。

# 上記のことを提示されれば、回答がつきやすくなると思われます。
・ツリー全体表示

【75657】Re:画像の一括挿入
発言  γ  - 14/6/6(金) 21:50 -

引用なし
パスワード
   焦点を絞って質問して下さい。

ActiveSheet.Pictures.Insert(strFolder & Me.ListBox1.List(i)).Select
のところが不明なのですか?    
  With ActiveSheet.Pictures.Insert(Filename:=myFileName)
    .Top = ActiveCell.Top
    .Left = ActiveCell.Left
  End With
を参考にして書き換えるということですか?
フォルダ名と("\"を間にはさんで)ファイル名を連結したパス名を
引数に与えればよいと思います。
そして、
画像のtop位置を アクティブセルのtop位置に合わせ、
画像のLeft位置を アクティブセルのLeft位置に合わせるという処理を
すればいいわけですよね。

ActiveCellが正しくセットされているのか、
そもそもどこにセットしたいのか、など説明がないので、
さっぱり解りません。そこは問題ないんですね?
・ツリー全体表示

【75656】Re:画像の一括挿入
質問  ちゃぷ  - 14/6/6(金) 20:57 -

引用なし
パスワード
   If 挿入可能(objFile)をIf 挿入可能(objFile.Path)
にすることで、画像挿入はできるようになりましたが、
指定セルに画像を各々貼り付けする事ができません。
UserForm1に記載されているコードで画像挿入位置を
変えればよいかと思いますが、どこを変えたらよいか
わかりません。
いろいろ調べると下記コードに行き着きましたが、
繋げ方がわかりませんので、教えて下さい。

選択セルを左上端として画像を挿入
With ActiveSheet.Pictures.Insert(Filename:=myFileName)
    .Top = ActiveCell.Top
    .Left = ActiveCell.Left
End With

UserForm1
Private Sub CommandButton_OK_Click()
 Dim j As Long
 Dim EndColumn As Byte
 Dim MaxHeight As Long
 Dim MaximumWidth As Long
 For i = 0 To Me.ListBox1.ListCount - 1
  If Me.ListBox1.Selected(i) = True Then GoTo Line1
 Next i
 MsgBox "選択されていません", vbExclamation
 Exit Sub
Line1:
 MsgBox "新しいブックに画像を挿入します"
 Workbooks.Add
 Application.ScreenUpdating = False
 Range("A1").Select
 If Me.OptionButton_C1.Value Then
  EndColumn = 1
 ElseIf Me.OptionButton_C2.Value Then
  EndColumn = 3
 ElseIf Me.OptionButton_C3.Value Then
  EndColumn = 5
 ElseIf Me.OptionButton_C4.Value Then
  EndColumn = 7
 ElseIf Me.OptionButton_C5.Value Then
  EndColumn = 9
 ElseIf Me.OptionButton_C6.Value Then
  EndColumn = 11
 ElseIf Me.OptionButton_C7.Value Then
  EndColumn = 13
 Else
  EndColumn = 15
 End If
 For i = 0 To Me.ListBox1.ListCount - 1
  If Me.ListBox1.Selected(i) = False Then GoTo Line2
  If Me.CheckBox_Name.Value Then
   ActiveCell.Value = Me.ListBox1.List(i)
   ActiveCell.EntireRow.AutoFit
   ActiveCell.Offset(1, 0).Select
  End If
  ActiveSheet.Pictures.Insert(strFolder & Me.ListBox1.List(i)).Select
  サイズ調整
  If Selection.Width > MaxWidth((ActiveCell.Column - 1) / 2) Then MaxWidth((ActiveCell.Column - 1) / 2) = Selection.Width
  If Selection.Height > MaxHeight Then MaxHeight = Selection.Height
  If ActiveCell.Column = EndColumn Then
   ActiveCell.EntireRow.RowHeight = MaxHeight
   MaxHeight = 0
   If Me.OptionButton_RNone.Value Then
    Cells(ActiveCell.Row + 1, 1).Select
   ElseIf Me.OptionButton_R1.Value Then
    Cells(ActiveCell.Row + 2, 1).Select
   ElseIf Me.OptionButton_R2.Value Then
    Cells(ActiveCell.Row + 3, 1).Select
   Else
    Cells(ActiveCell.Row + 4, 1).Select
   End If
  Else
   ActiveCell.Offset(0, 2).Select
   If Me.CheckBox_Name.Value Then ActiveCell.Offset(-1, 0).Select
  End If
Line2:
 Next i
 If Me.CheckBox_Name.Value Then
  ActiveCell.Offset(1, 0).EntireRow.RowHeight = MaxHeight
 Else
  ActiveCell.EntireRow.RowHeight = MaxHeight
 End If
 列幅調整 EndColumn
 If Me.CheckBox_Name.Value Then Cells.Font.Size = Me.ComboBox_Name.Value
 Unload Me
 Application.ScreenUpdating = True
End Sub

▼ちゃぷ さん:
> 下記コードでExcel2000では使用可能でしたが、
> 2007では「このフォルダには画像がありません」
> と表示されてしまいます。
> どこを直したら良いか、教えて下さい。
> 宜しくお願いします。
>
>Option Explicit
>
>Public i As Long
>Public strFolder As String
>Public MaxWidth(8) As Long
>
>Sub 画像の一括挿入()
> On Error GoTo Fin
> Dim objFS As Object
> Dim objFolder As Object
> Dim objFile As Object
> Dim blnExist As Boolean
> Dim FontSize
> Dim PicLen
> Application.EnableCancelKey = xlDisabled
> strFolder = ""
> FontSize = Array(6, 8, 9, 10, 11, 12, 14, 16, 18, 20, 22, 24)
> PicLen = Array(60, 90, 120, 150, 180, 210, 240, 270, 300, 330, 360, 390)
> Set objFS = CreateObject("Scripting.FileSystemObject")
> Set objFolder = CreateObject("Shell.Application").BrowseForFolder(0, "画像の入っているフォルダを選択してください", 0)
> If Not objFolder Is Nothing Then
>  strFolder = objFolder.Items.Item.Path
> End If
> If strFolder = "" Then Exit Sub
> If Right(strFolder, 1) <> "\" Then strFolder = strFolder & "\"
> Load UserForm1
> UserForm1.Label1.Caption = strFolder
> Application.ScreenUpdating = False
> For Each objFile In objFS.GetFolder(strFolder).Files
>  If 挿入可能(objFile) Then
>   UserForm1.ListBox1.AddItem objFile.Name
>   blnExist = True
>  End If
> Next
> For i = 0 To 11
>  UserForm1.ComboBox_Name.AddItem FontSize(i)
> Next i
> UserForm1.ComboBox_Name.ListIndex = 1
> For i = 0 To 11
>  UserForm1.ComboBox_PicLen.AddItem PicLen(i)
> Next i
> UserForm1.ComboBox_PicLen.ListIndex = 2
> Application.ScreenUpdating = True
> If blnExist Then
>  UserForm1.Show
> Else
>  MsgBox "このフォルダには画像がありません", vbInformation, "画像の挿入"
> End If
> Unload UserForm1
>Fin:
> Application.EnableCancelKey = xlInterrupt
>End Sub
>
>Function 挿入可能(objFile) As Boolean
> On Error GoTo Err1
> ActiveSheet.Pictures.Insert(objFile).Delete
> 挿入可能 = True
>Err1:
>End Function
・ツリー全体表示

【75655】表を5行ごとにコピー
質問  むん  - 14/6/6(金) 16:35 -

引用なし
パスワード
   こんにちわ。
早速質問させてください。

B5とC5列に表が入っています。
下にデータが続いております(その時々でデータ量が違う)

B列は題名みたいなもので、例えば‥

   B      C
5      | 2個  
6 リンゴ  | 4個
7      | 8個
8 みかん  | 1個
9 ぶどう  | 3個
10      | 5個


このような感じで、行数もバラバラ、結合されている状態です。
縦長の表なので、スクロールが大変なので
結合セルを5個づつ、一つ空白セルを作りズラしていきたいのです。

   B      C   D   E   F
5      | 2個 |  | B列の| 
6 リンゴ  | 4個 |  | 5行目|
7      | 8個 |  | から |
8 みかん  | 1個 |  |   |
9 ぶどう  | 3個 |  |   |
10      | 5個 |  |   |

BC5行 EF5行 HI5行。。
のように表の最後が来るまでループさせて位と思っております。
色々試したのですが、結合している為、エラーがでてしまい
悪戦苦闘中です。

お力を貸してください。よろしくお願い致します。
・ツリー全体表示

【75654】Re:画像の一括挿入
発言  γ  - 14/6/5(木) 22:13 -

引用なし
パスワード
   On Error GoTo Fin

On Error GoTo Err1
を無効(例:コメントにする)にしたうえで、
ステップ実行して、
何が起きているかをまずご自分で観察することでしょうね。
# 私は2007環境がないので不明です。
・ツリー全体表示

【75653】画像の一括挿入
質問  ちゃぷ  - 14/6/5(木) 20:22 -

引用なし
パスワード
   下記コードでExcel2000では使用可能でしたが、
2007では「このフォルダには画像がありません」
と表示されてしまいます。
どこを直したら良いか、教えて下さい。
宜しくお願いします。

Option Explicit

Public i As Long
Public strFolder As String
Public MaxWidth(8) As Long

Sub 画像の一括挿入()
 On Error GoTo Fin
 Dim objFS As Object
 Dim objFolder As Object
 Dim objFile As Object
 Dim blnExist As Boolean
 Dim FontSize
 Dim PicLen
 Application.EnableCancelKey = xlDisabled
 strFolder = ""
 FontSize = Array(6, 8, 9, 10, 11, 12, 14, 16, 18, 20, 22, 24)
 PicLen = Array(60, 90, 120, 150, 180, 210, 240, 270, 300, 330, 360, 390)
 Set objFS = CreateObject("Scripting.FileSystemObject")
 Set objFolder = CreateObject("Shell.Application").BrowseForFolder(0, "画像の入っているフォルダを選択してください", 0)
 If Not objFolder Is Nothing Then
  strFolder = objFolder.Items.Item.Path
 End If
 If strFolder = "" Then Exit Sub
 If Right(strFolder, 1) <> "\" Then strFolder = strFolder & "\"
 Load UserForm1
 UserForm1.Label1.Caption = strFolder
 Application.ScreenUpdating = False
 For Each objFile In objFS.GetFolder(strFolder).Files
  If 挿入可能(objFile) Then
   UserForm1.ListBox1.AddItem objFile.Name
   blnExist = True
  End If
 Next
 For i = 0 To 11
  UserForm1.ComboBox_Name.AddItem FontSize(i)
 Next i
 UserForm1.ComboBox_Name.ListIndex = 1
 For i = 0 To 11
  UserForm1.ComboBox_PicLen.AddItem PicLen(i)
 Next i
 UserForm1.ComboBox_PicLen.ListIndex = 2
 Application.ScreenUpdating = True
 If blnExist Then
  UserForm1.Show
 Else
  MsgBox "このフォルダには画像がありません", vbInformation, "画像の挿入"
 End If
 Unload UserForm1
Fin:
 Application.EnableCancelKey = xlInterrupt
End Sub

Function 挿入可能(objFile) As Boolean
 On Error GoTo Err1
 ActiveSheet.Pictures.Insert(objFile).Delete
 挿入可能 = True
Err1:
End Function
・ツリー全体表示

【75652】Re:オートシェイプの貼付け
発言  OVL  - 14/6/5(木) 14:12 -

引用なし
パスワード
   追記:別の掲示板で質問しなおすのでこちらは終了します。
・ツリー全体表示

【75650】Re:オートシェイプの貼付け
発言  γ  - 14/6/4(水) 22:10 -

引用なし
パスワード
   少しそもそも論を追加します。
一般論として、結合セルの多用は余りお勧めできません。

また○で囲むというのも、余りお勧めできません。
集計にも使えませんし、負荷に見合う効果がないと思います。
見た目が手作業のものに類似していることぐらいです。
セルの背景色とか、オプションボタンとか、
もっと別の方法を検討してもいいんじゃないですか?

また、最悪、図形を扱うとしても、
その都度貼り付けたり、削除を繰り返すのは、名前管理など面倒なだけです。
図形は固定して置いて、表示、非表示状態を切り替えるほうが楽なはずです。
こうした点も検討してください。
・ツリー全体表示

【75649】Re:ワイルドカードを使った3つ以上条件...
お礼  mam  - 14/6/4(水) 21:15 -

引用なし
パスワード
   回答ありがとうございます。できました!!!
フィルタオプションも試してみたのですが、
A1とC1に"姓"がなかったのでできなかったみたいです。
本当にありがとうございました!
・ツリー全体表示

【75648】Re:オートシェイプの貼付け
発言  γ  - 14/6/4(水) 20:05 -

引用なし
パスワード
   >宜しくお願い致します。

予めお断りしておきますが、
私は、コード作成を代行するつもりはありません。

しかし、ご自分でコードを作成したい、
スキルを高めたいと考えている方には、
サポートさせていただきたいと思っています。

その前提で、以下コメントします。

こういう場合は、問題をいくつか簡単なことに分割して
検討していくと良いでしょう。

まずは、どこにあるシェイプなのか知りませんが、
それをH22:I22に貼り付ける処理をマクロ記録してみることです。
・ツリー全体表示

【75647】Re:オートシェイプの貼付け
質問  OVL  - 14/6/4(水) 19:47 -

引用なし
パスワード
   γさん
申し訳ございません。
説明が長くなるのでこのような方法になりました。
説明がわかるかどうかわかりませんが、以下のようにできないかと思います。


入力シートに下記のセルにリストボックスがあります。

E20〜N20
E22〜N22
E23〜N23
E24〜N24
E25〜N25
E27〜N27
E28〜N28
E29〜N29

この行間が77行

E107〜N107
E109〜N109
E110〜N110
E111〜N111
E112〜N112
E114〜N114
E115〜N115
E116〜N116

と同じ行間で続き最後が↓

E368〜N368
E370〜N370
E371〜N371
E372〜N372
E373〜N373
E375〜N375
E376〜N376
E377〜N377

楕円シートにオートシェイプを貼付けしたいのですが、
貼付け場所が下記です。

入力シートE20が"済"の時、楕円シートのH22:I22の結合セルに貼付け
入力シートE20が"未"の時、楕円シートのS22:T22の結合セルに貼付け

入力シートE22の"有"の時、楕円シートのAF24:AG24の結合セルに貼付け
入力シートE22の"無"の時、楕円シートのAM24:AN24の結合セルに貼付け

入力シートE23の"はい"の時、楕円シートのAF25:AG25の結合セルに貼付け
入力シートE23の"いいえ"の時、楕円シートのAM25:AN25の結合セルに貼付け

入力シートE24の"1年"の時、楕円シートのAF26:AG26の結合セルに貼付け
入力シートE24の"2年"の時、楕円シートのAM26:AN26の結合セルに貼付け
入力シートE24の"3年"の時、楕円シートのAV26:AW26の結合セルに貼付け

入力シートE25の"ある"の時、楕円シートのAF27:AG27の結合セルに貼付け
入力シートE25の"ない"の時、楕円シートのAV27:AW27の結合セルに貼付け

入力シートE27の"よい"の時、楕円シートのAF28:AG28の結合セルに貼付け
入力シートE27の"ふつう"の時、楕円シートのAM28:AN28の結合セルに貼付け
入力シートE27の"わるい"の時、楕円シートのAV28:AW28の結合セルに貼付け

入力シートE28の"はい"の時、楕円シートのAF29:AG29の結合セルに貼付け
入力シートE28の"いいえ"の時、楕円シートのAM29:AN29の結合セルに貼付け

入力シートE29の"いる"の時、楕円シートのAF30:AG30の結合セルに貼付け
入力シートE29の"いない"の時、楕円シートのAM30:AN30の結合セルに貼付け


入力シートF20が"済"の時、楕円シートのBL22:BM22の結合セルに貼付け
入力シートF20が"未"の時、楕円シートのBW22:BX22の結合セルに貼付け

入力シートF22の"有"の時、楕円シートのCJ24:CK24の結合セルに貼付け
入力シートF22の"無"の時、楕円シートのCQ24:CR24の結合セルに貼付け

入力シートF23の"はい"の時、楕円シートのCJ25:CK25の結合セルに貼付け
入力シートF23の"いいえ"の時、楕円シートのCQ25:CR25の結合セルに貼付け

入力シートF24の"1年"の時、楕円シートのCJ26:CK26の結合セルに貼付け
入力シートF24の"2年"の時、楕円シートのCQ26:CR26の結合セルに貼付け
入力シートF24の"3年"の時、楕円シートのCZ26:DA26の結合セルに貼付け

入力シートF25の"ある"の時、楕円シートのCJ27:CK27の結合セルに貼付け
入力シートF25の"ない"の時、楕円シートのCZ27:DA27の結合セルに貼付け

入力シートF27の"よい"の時、楕円シートのCJ28:CK28の結合セルに貼付け
入力シートF27の"ふつう"の時、楕円シートのCQ28:CR28の結合セルに貼付け
入力シートF27の"わるい"の時、楕円シートのCZ28:DA28の結合セルに貼付け

入力シートF28の"はい"の時、楕円シートのCJ29:CK29の結合セルに貼付け
入力シートF28の"いいえ"の時、楕円シートのCQ29:CR29の結合セルに貼付け

入力シートF29の"いる"の時、楕円シートのCJ30:CK30の結合セルに貼付け
入力シートF29の"いない"の時、楕円シートのCQ30:CR30の結合セルに貼付け

行間が54行空き、入力シートのG列、H列分
行間が54行空き、入力シートのI列、J列分
行間が54行空き、入力シートのK列、L列分
行間が54行空き、入力シートのM列、N列分

が同じ間隔で貼付けできるようにできないでしょうか?

説明が下手なのでわかるかどうかわかりませんが
宜しくお願い致します。
・ツリー全体表示

【75646】Re:ワイルドカードを使った3つ以上条件...
発言  γ  - 14/6/4(水) 19:26 -

引用なし
パスワード
   Criteria1には配列指定はできません。
Criteria1とCriteria2の二つしか指定できませんから、
こうした場合は、フィルタオプション(詳細設定)を使うのが良いのでは?

コードは一例です。
Sub test()
  Range("C1").Value = "姓"
  Range("C2").Value = "*田*"
  Range("C3").Value = "*藤*"
  Range("C4").Value = "*山*"
  Range("A1:A8").AdvancedFilter Action:=xlFilterInPlace, _
      CriteriaRange:=Range("C1:C4"), Unique:=False
End Sub
A列の見出しが"姓"である前提です。
・ツリー全体表示

【75645】ワイルドカードを使った3つ以上条件のオ...
質問  mam  - 14/6/4(水) 18:52 -

引用なし
パスワード
   Excel2010VBAでワイルドカードを使った3つ以上のオートフィルタ抽出について教えて下さい。

A列に
田中
富田
伊藤
加藤
中山
佐々木
山田
とあり、"田""藤""山"のつく行だけフィルタ抽出したい場合下記のように
記載しましたが1つも抽出されません。

Sub Book1test()
  Range("A1").AutoFilter Field:=1, _
              Criteria1:=Array("*田*", "*藤*", "*山*"), _
              Operator:=xlFilterValues
End Sub

因みに2つ以上("田"と"藤"だけ)だとうまくいきます。
3つ以上で成功させるにはどのようにしたら良いのでしょうか?
お分かりになる方教えてください。よろしくお願いします。
・ツリー全体表示

【75644】Re:エクセルを別窓で開いて表示
お礼  こたろう  - 14/6/4(水) 17:07 -

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

ありがとうございました
動作することを確認しました

もう一度勉強します
・ツリー全体表示

【75643】Re:エクセルを別窓で開いて表示
発言  Yuki  - 14/6/4(水) 16:46 -

引用なし
パスワード
   ▼こたろう さん:
Option Explicit

Public xlApp  As Excel.Application
Public xlBook  As Excel.Workbook

Sub BookOpen()
  Set xlApp = New Excel.Application
  xlApp.Visible = True
  Set xlBook = xlApp.Workbooks.Open("開くエクセルファイルのフルパス")
  
  ' xlBook が新規エクセルで開いていますのでこの Object変数で操作してください。
  ' Module Level で定義してありますからこのブックの何処でも参照出来ます。
End Sub
・ツリー全体表示

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