Excel VBA質問箱 IV

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

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


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

【78853】Re:ファイル移動
発言  マナ  - 17/2/11(土) 21:34 -

引用なし
パスワード
   ▼ピアニッチ さん:

こういうときは、ステップ実行で、変数に何がはいっているか確認するとよいです。
ところで、movefileで、名前も変えてしまえばよいと思います。
・ツリー全体表示

【78852】ファイル移動
質問  ピアニッチ  - 17/2/11(土) 19:26 -

引用なし
パスワード
   ワークシートにパスが入力されています。そのパスの直下にInputBoxで指定した数字名のフォルダに複数のファイルが存在しています。
InputBoxで指定した数字名のパスの中にある"N1.jpg"を指定されたフォルダに移動後、ファイル名の変更をしたいのですが
下記の箇所でファイルが見つかりませんとエラーが出てしまいます。
どのように処理すれば良いでしょうか。よろしくお願いします。
問題箇所:myFso.MoveFile oFilN1, nFilN1


Sub 転送()
Dim myFso As Object
Dim path1 As String
Dim day As String
Dim oFilN1 As String
Dim nFilN1 As String
Dim buffer1 As String

Set myFso = CreateObject("Scripting.FileSystemObject")
'移動元ファイルの検索と移動先の指定
path1 = Range("C12")
day = InputBox("日付を入力して下さい")
If day <> Empty Then
day = CInt(day)
Else
Exit Sub
End If
oFilN1 = Dir(path1 & "\" & day & "\" & "N1.jpg", vbNormal)
nFilN1 = Workbooks("起動シート.xls").path
If Not myFso.fileExists(filespec:=oFilN1) Then
myFso.MoveFile oFilN1, nFilN1
End If

'フォルダ内の画像ファイル名を変更
buffer1 = Dir(path1 & "\" & "N1.jpg", vbNormal)
If buffer1 <> Empty Then
Name path1 & buffer1 As Replace(path1 & buffer1, "N1.jpg", "N1#1_001.jpg")
Else
MsgBox "N1.jpgがありません"
End If
Set myFso = Nothing
End Sub
・ツリー全体表示

【78851】Re:worksheetのコピー貼り付け
お礼  のんぼ  - 17/2/11(土) 15:24 -

引用なし
パスワード
   ▼γ さん:
>ヒントを回答しているのに無視ですか?
>返事くらいしたらどうでしょう。
申し訳ありません
返事が遅くなりました。
for each を使ってみるようにします。また、変数宣言の型を入れるようにします。
どうもありがとうございました。
・ツリー全体表示

【78850】Re:列の挿入
お礼  トシ坊  - 17/2/11(土) 14:16 -

引用なし
パスワード
   γ さんありがとうございます。
試してみたら上手く出来ました。
・ツリー全体表示

【78849】Re:列の挿入
回答  γ  - 17/2/11(土) 9:38 -

引用なし
パスワード
   Selectが余計な動作を引き起こす例です。
Selectせずに、
Columns("C:C").Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove
とします。
・ツリー全体表示

【78848】列の挿入
質問  トシ坊 E-MAIL  - 17/2/11(土) 9:02 -

引用なし
パスワード
   B2のセルからF2のセルまで結合されているシートで
C列を選択し、挿入すると
Columns("C:C").Select
Selection.Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove
上記のマクロが作成されますが、上記マクロを実行すると
1行目の所でB列からF列が選択されB列の前に5列ついかされてしまいます。
結合されたセルが有ってもC列に1行追加するには、どのようにすれば良いのでしょうか
過去ログにあってもよさそうなのですが見つけることができませんでした
宜しくお願い致します。
・ツリー全体表示

【78847】Re:CSVファイルを指定列に読み込み
発言  β  - 17/2/10(金) 15:15 -

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

処理コードを書いて提示することも考えましたが
もし、本当に初心者でVBAのことが、ほとんどわからないということであれば
以下の操作をマクロ記録すると、コードが生成されます。
エクセルブックとしてCSVファイルを開きますので、もしCSVファイルが
1048576行超のファイルであれば具合悪いですが。

1.ファイルメニューで【開く】
2.すべての種類を指定して、該当の master.csv を指定。
3.読み込まれたCSVファイルのシートのA1を選択してCtrl/Shift/↓
4.選択された領域を Ctrl/c
5.マクロブックのSheet5 を表示。
6.M列データ最終行のセルの次のセルを選択して Ctrl/v。
7.Escキーを押してコピーモード解除
8.CSVファイルを表示して保存なしで閉じる。

どんどん転記していくといつかはエクセルの行の限界(1048576)になり
エラーになりますが、とりあえずは、こういったコードでスタートされてはいかが?

もちろん、マクロ記録されたコードは、そもそもが煩雑なコード記述になっていますので
それをスッキリさせるとか、固定セル領域になっているところを変数化するといった
お化粧直しは必要ですが。

まず、この線でがんばってみてください。
変数化の段階で壁にぶつかれば、それまでに出来上がったコードをアップして
SOSを出してください。

★CSVファイル側、1行目にタイトル行があるなら、
 手順3は A2 を選択して行ってください。
・ツリー全体表示

【78846】Re:CSVファイルを指定列に読み込み
質問  JJ  - 17/2/10(金) 11:13 -

引用なし
パスワード
   ▼β さん:
>▼JJ さん:
>
>1.CSVファイルはメモ帳等のテキストエディタで入力しているのでしょうか?

VB2013からCSV出力しています。
>
>2.入力は 合計数 合計時間 日付[改行] といった入力ですか?
>  それとも 合計数,合計時間,日付[改行] といった入力ですか?

今、確認した所

合計時間[改行] 
合計数[改行] 
日付[改行] 

です。

>3.前者だとすると間のスペースは半角ですか、全角ですか?

下に改行なのでスペースはありません
>
>4.このCSVファイルをエクセルで開くと 値は A列のみに表示されていますか?
>  それとも A,B,C列にわかれて表示されていますか?

A列のみです

>
>5.エクセルへの取り込みですが、既存データに追加ですか?
>  それとも、常に1行目から転記ですか?

M列の既存データにCSVの先頭から取り込みます
sheet5 の場所に毎日追記していきます。

細かく指示して頂きありがとうございます。
・ツリー全体表示

【78845】Re:CSVファイルを指定列に読み込み
発言  β  - 17/2/10(金) 9:35 -

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

1.CSVファイルはメモ帳等のテキストエディタで入力しているのでしょうか?

2.入力は 合計数 合計時間 日付[改行] といった入力ですか?
  それとも 合計数,合計時間,日付[改行] といった入力ですか?

3.前者だとすると間のスペースは半角ですか、全角ですか?

4.このCSVファイルをエクセルで開くと 値は A列のみに表示されていますか?
  それとも A,B,C列にわかれて表示されていますか?

5.エクセルへの取り込みですが、既存データに追加ですか?
  それとも、常に1行目から転記ですか?
・ツリー全体表示

【78844】Re:CSVファイルを指定列に読み込み
質問  [名前なし]  - 17/2/10(金) 9:05 -

引用なし
パスワード
   ▼β さん:
>▼JJ さん:
>
エクセルは2010です

CSVにはデータが 合計数 合計時間 日付 の3個を
毎日記録して 改行しながら下へ下へ上書きしています

となると上段からのデータを エクセルのM列に入れたい
ということになります。

お返事ありがとうございます。
・ツリー全体表示

【78843】Re:関数の挿入 式を教えてください
お礼  momo  - 17/2/9(木) 22:34 -

引用なし
パスワード
   ▼γ さん:分りました!すみませんでした
         質問は、削除します
>▼momo さん:
>>わからないので、ここで質問させていただきました。
>
>自分の都合だけで場違いな質問するのはやめましょう。
>VBAと無関係なら、別のところで質問して下さい。
・ツリー全体表示

【78842】Re:関数の挿入 式を教えてください
発言  γ  - 17/2/9(木) 22:32 -

引用なし
パスワード
   ▼momo さん:
>わからないので、ここで質問させていただきました。

自分の都合だけで場違いな質問するのはやめましょう。
VBAと無関係なら、別のところで質問して下さい。
・ツリー全体表示

【78841】Re:関数の挿入 式を教えてください
発言  momo  - 17/2/9(木) 22:29 -

引用なし
パスワード
   ▼γ さん:
>VBAで関数を挿入するんですか?
>なぜ関数なんでしょうか?

ここは、VBA専門の質問場所ですが
わからないので、ここで質問させていただきました。

Excelで作成しています

もしお分りでしたら
教えていただきたいです
すみません(*_*)
・ツリー全体表示

【78840】Re:worksheetのコピー貼り付け
発言  γ  - 17/2/9(木) 22:23 -

引用なし
パスワード
   ヒントを回答しているのに無視ですか?
返事くらいしたらどうでしょう。
・ツリー全体表示

【78839】Re:関数の挿入 式を教えてください
発言  γ  - 17/2/9(木) 22:22 -

引用なし
パスワード
   VBAで関数を挿入するんですか?
なぜ関数なんでしょうか?
・ツリー全体表示

【78838】関数の挿入 式を教えてください
質問  momo  - 17/2/9(木) 22:08 -

引用なし
パスワード
  

シート1は、このような感じで入力しています

氏名    組    列(1から4あり)  番号(1か2 のみ)

鈴木     A     4           1
木下     A     1           2
佐々木   B      1           2
山下    B      3           1

シート2

▼A組とB組の枠を作成しています 
  1シートのAなのかBなのか組分けを読み取り
  その表の中へ反映されるようにしたいです 
  また、1から4列なのかを読み取り、またその中の
  1番か2番を読み取り それを反映させたいです

A組                B組  

1列 1番           
    2番   木下       佐々木

2列  1番
     2番

3列  1番             山下
     2番

4列  1番  鈴木
     2番

説明下手ですみません。
・ツリー全体表示

【78837】Re:CSVファイルを指定列に読み込み
発言  β  - 17/2/9(木) 18:45 -

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

csvファイルもイメージとしては列がたくさんあって行もたくさんありますね。
その中に値もたくさんあるわけです。

>CSVファイルの文字列を
>エクセルのsheet5 のM1、2.3と可能な限り読み込みをしたいのですが

M列に取り込む値は、csvファイルにあるすべての値ですか?
それとも、特定の列のデータですか?

前者だとしたら、『可能な限り』ですから、エクセルの最大行数分の値ですね?
xl2003以前であれば 65536、xl2007以降であれば、1048576。

エクセルバージョンは何ですか?

また、空白の値も取り込むのですか?
それとも、空白の値は取り込まず、値のあるものだけを上づめで取り込むのですか?
・ツリー全体表示

【78836】CSVファイルを指定列に読み込み
質問  JJ  - 17/2/9(木) 16:28 -

引用なし
パスワード
   初めまして、VBAで質問です

CSVファイルの文字列を

例:
master.csvを
エクセルのsheet5 のM1、2.3と可能な限り読み込みをしたいのですが

VBAは触ったことがなく
やり方がわかりません。

勉強のために
説明していただけると
ありがたいです
・ツリー全体表示

【78835】Re:再質問 あり ランダム数字から別シー...
お礼  ぺぺ  - 17/2/9(木) 16:14 -

引用なし
パスワード
   ▼マナさん β さん:

入力間違いでした!
うまくできました!教えてくださり
ありがとうございました!!

>▼ぺぺ さん:
>
>こちらでは
>
>=IFERROR(INDEX(Sheet1!A:A,MATCH($D2,Sheet1!$C:$C,0)),"")
>
>これで、問題なく、表示されていますが?
・ツリー全体表示

【78834】Re:特定の指名した氏名にバックカラーを...
発言  β  - 17/2/9(木) 10:17 -

引用なし
パスワード
   ▼トキノハジメ さん:

A1から右、1行目のセルに条件付書式をセットするコードサンプルです。

たとえば

  With Range("A1", Cells(1, Columns.Count).End(xlToLeft))

これを

  With Range("A1", ActiveSheet.UsedRange)

にすれば、A1から始まるシート内全領域に一度にセットすることも可能です。

Sub Sample()
  With Range("A1", Cells(1, Columns.Count).End(xlToLeft))
    .FormatConditions.Delete
    .FormatConditions.Add Type:=xlExpression, Formula1:= _
      "=OR(A1=""山田"",A1=""沼田"")"
    With .FormatConditions(.FormatConditions.Count).Interior
      .PatternColorIndex = xlAutomatic
      .Color = vbRed
      .TintAndShade = 0
    End With
    .FormatConditions.Add Type:=xlExpression, Formula1:= _
      "=OR(A1=""川田"",A1=""西村"")"
    With .FormatConditions(.FormatConditions.Count).Interior
      .PatternColorIndex = xlAutomatic
      .Color = vbCyan
      .TintAndShade = 0
    End With
  End With
End Sub
・ツリー全体表示

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