Excel VBA質問箱 IV

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

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


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

【80649】Re:フォルダからファイルを選択後別フォ...
発言  マナ  - 19/3/26(火) 17:45 -

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


>以下のコードでコピー元とコピー先を指定するコピーの仕方はわかりましたが、選択したフォルダのパスとファイル名をマクロで取得したものをコピー元に当て込むことができません。
>FileCopy source, destination
>つまりパスを直接書き込まずに、自由にフォルダから選択したエクセルファイルをコピー元としてマクロに当て込むようにしたいのですがエラーになってしまします。

そのエラーのでたコードを提示できませんか。
・ツリー全体表示

【80648】Re:打刻からの時間加算
お礼  はじめまして  - 19/3/26(火) 15:56 -

引用なし
パスワード
   ▼ピンク さん:
>▼はじめまして さん:
>>選択したセル(時刻記入済み)に+2時間を加算するマクロを作りたいと思っております。
>
>ActiveCell.Value = ActiveCell.Value + TimeValue("02:00")

ご回答ありがとうございます、実行しましたところ
当方の求める結果になりました、ありがとうございます。
知識不足ゆえ、簡単なこともわからず ご回答いただいたお二方に感謝いたします。
・ツリー全体表示

【80647】Re:打刻からの時間加算
回答  ピンク  - 19/3/26(火) 15:50 -

引用なし
パスワード
   ▼はじめまして さん:
>選択したセル(時刻記入済み)に+2時間を加算するマクロを作りたいと思っております。

ActiveCell.Value = ActiveCell.Value + TimeValue("02:00")
・ツリー全体表示

【80646】Re:打刻からの時間加算
お礼  はじめまして  - 19/3/26(火) 15:46 -

引用なし
パスワード
   ▼Jaka さん:
>なんか勘違いされそうだけど、解りやすいかと思って
>適当に
>00:01:20
>にしただけなんで、適当に修正してください。

早速のご回答ありがとうございます。
当方の書き方がわかりにくくて申し訳ありません。
表記は時間で13:00 は13時で追加時間は2時間です

例えば、A1にCtrl+:で現在時刻(13:00 13時)をセルに打刻した後に
時間延長として(2:00 2時間)を加算してA1の値を15:00(15時)に書き換えたい
という質問です。
ただし、打刻するセルが多数ありますのrangeでセル指定をしてしまいますと
セルの数だけマクロを作らなければいけないかと思いますので
選択したセル(時刻記入済み)に+2時間を加算するマクロを作りたいと思っております。
・ツリー全体表示

【80645】Re:打刻からの時間加算
発言  Jaka  - 19/3/26(火) 15:18 -

引用なし
パスワード
   なんか勘違いされそうだけど、解りやすいかと思って
適当に
00:01:20
にしただけなんで、適当に修正してください。
・ツリー全体表示

【80644】Re:打刻からの時間加算
発言  Jaka  - 19/3/26(火) 14:39 -

引用なし
パスワード
   分なのか時間なのか解らんけど、

Range("A1").Value = Time

Range("A2").Value = Range("A1").Value + TimeValue("00:01:20")

とか。
・ツリー全体表示

【80643】打刻からの時間加算
質問  はじめまして  - 19/3/26(火) 14:06 -

引用なし
パスワード
   初めまして、VBAの質問をさせていただきます。
タイムテーブルを作るのにVBAで打刻のマクロを作りましたが、
打刻後の時間延長(時間加算)方法がわからないので質問させていただきます。
下記マクロで任意のセルに「Ctrl+:」で現在時刻をセルに入れたのち
その時刻に時間を足し算したいと思っております。

例) 13:00(打刻時間)+2:00(固定時間)でセルに「15:00」となる。
マクロを実行毎に+2:00される。

ご回答の程、よろしくお願いいたします。


Sub 打刻()
'
' 打刻 Macro
'

'
    SendKeys "^:"
    SendKeys "{Enter}"
End Sub
Sub クリア()
'
' クリア Macro
'

'
SendKeys "{Delete}"
End Sub
・ツリー全体表示

【80642】Re:フォルダからファイルを選択後別フォ...
質問  katsura E-MAIL  - 19/3/26(火) 11:27 -

引用なし
パスワード
   ▼マナ さん:
>▼katsura さん:
>
>>クリックしたエクセルをコピーする書き方がわかりません。
>
>その前に、↓のファイルをコピーするマクロは理解できたのですか?
>
>>>ht tp://officetanaka.net/excel/vba/statement/FileCopy.htm

以下のコードでコピー元とコピー先を指定するコピーの仕方はわかりましたが、選択したフォルダのパスとファイル名をマクロで取得したものをコピー元に当て込むことができません。
FileCopy source, destination
つまりパスを直接書き込まずに、自由にフォルダから選択したエクセルファイルをコピー元としてマクロに当て込むようにしたいのですがエラーになってしまします。
どのようにしたらできるのでしょうか。
・ツリー全体表示

【80641】Re:マクロのコピーペストがうまく行かない
発言  マナ  - 19/3/25(月) 21:43 -

引用なし
パスワード
   ▼モリチャン さん:

あら、今回も、マルチポストでしたか。
こちらは、必要なさそうですね。

本サイトの基本方針
ht tp://www.vbalab.net/bbspolicy.html

別のサイト(掲示板)にまったく同じ目的の投稿をすることを、一般に「マルチポスト」といいます。当質問箱では、マルチポストは原則認めています。つまり、ほかのサイトで質問したことをこのサイトで質問してもかまわないということです。

しかし、もしマルチポストをするのなら、可能な限り「○○にも同じ質問を出しました」ということを宣言してください。そして、仮に他のサイトで解決したのなら、ここにも必ずその顛末を書いてください。質問しっぱなし、というのはモラルに反します。「解決したからいいや」というのではありません。

また、マルチポストを明示的に禁止しているサイトとのマルチポストをしてはいけません。
・ツリー全体表示

【80640】Re:マクロのコピーペストがうまく行かない
発言  マナ  - 19/3/25(月) 21:25 -

引用なし
パスワード
   ▼モリチャン さん:

前回の質問は、解決したのでしょうか?
今回も、同じことをお願いします。

まずは、インデントから
ht tp://kabu-macro.com/word/sa-so/zisage.html

次に、変数宣言
ht tp://officetanaka.net/excel/vba/beginner/11.htm

質問は、それからで。
・ツリー全体表示

【80639】マクロのコピーペストがうまく行かない
質問  モリチャン E-MAIL  - 19/3/25(月) 20:54 -

引用なし
パスワード
   電気試験の規格条件を、EXCELデータとし、試験項目の番号の規格条件を信頼性試験のグラフブックの規格表に貼り付け、EXCELでグラフ作成をします。コンセプトは、フォーム上で規格表データを読み込み、グラフ表に規格を貼り付ける事です。フォームのコードは、完全の様で、gfilename,dfilenameはテキストボックスに入っています。
モジュールのロジックは良いと思うのですが、モジュール部をF8で動かせる解析すると、変数Iは、1までしか動かず、D,Data(dfile)に、データが入りません。モジュール部で問題ないでしょか。
1)kは動くが、iが、Len関数が効いていないのか、1以外変化しない。iに対するLenの使い方はこれで良いのでしょうか?
(Cells find以下が動いていなくて、Copyができないようなので)
2)dfilename(1)が入っていないがDataに読み込ませる方法は無いでしょうか?TESTNOも変数宣言してみました。
3)D=Val(mid)関数だが、これで動くのでしょうか?
規格転送は、オブジェクト名です。
Sub dialog_show()
規格転送.規格ファイル = ""
規格転送.送られ側 = ""
規格転送.Show
If Button = "ok" Then Call main
End Sub

Sub main()
Dim sinn
Dim i
Dim k
Dim Data
Dim D
Workbooks.Open Filename:=gfilename(1)
sinn = ActiveWorkbook.Name
Sheets("規格値").Select
Range("E10").Select
ActiveCell.Offset(0, 0).Range(Cells(1, 1), Cells(15, 7)).Select
Selection.ClearContents

For k = 1 To 7
For i = 1 To i = Len(TESTNO) / 2 'Test項目数

Workbooks.Open Filename:=dfilename(1)
Data = ActiveWorkbook.Name
Windows(sinn).Activate
Range("E10").Select
ActiveCell.Offset(k - 1, i - 1).Select
Windows(Data).Activate
D = Val(Mid(TESTNO, (i - 1) * 2 + 1, 2)) 'Test項目の番号
Cells.Find(What:="D", After:=ActiveCell, LookIn:=xlFormulas, LookAt:= _
xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False) _
.Activate
ActiveCell.Offset(k - 1, 0).Copy
Windows(sinn).Activate
Selection.PasteSpecial Paste:=xlFormula
Next i

Next k

ActiveWindow.Close
If k = 7 Then
Application.ScreenUpdating = True
MsgBox ("終了しました")
End If

End Sub
・ツリー全体表示

【80638】Re:フォルダからファイルを選択後別フォ...
発言  マナ  - 19/3/25(月) 18:42 -

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

>クリックしたエクセルをコピーする書き方がわかりません。

その前に、↓のファイルをコピーするマクロは理解できたのですか?

>>ht tp://officetanaka.net/excel/vba/statement/FileCopy.htm
・ツリー全体表示

【80637】Re:フォルダからファイルを選択後別フォ...
質問  katsura E-MAIL  - 19/3/25(月) 16:22 -

引用なし
パスワード
   ▼マナ さん:
>▼katsura さん:
>
>filecopyとgetopenfilenameを使うとよいです。
>
>ht tp://officetanaka.net/excel/vba/statement/FileCopy.htm
>ht tps://www.moug.net/tech/exvba/0060013.html

ありがとうございます。
ファイルを選択するところまでは作ったのですが、クリックしたエクセルをコピーする書き方がわかりません。
なにか見本があったらお願いしたいのですがよろしくお願いいたします。

Sub フォルダを開きファイル選択をしてコピーする()

  Dim OpenFileName As String, FileName As String, Path As String
  OpenFileName = Application.GetOpenFilename("Microsoft Excelブック,*.xls?")
  If OpenFileName <> "False" Then
  
    FileName = OpenFileName '←←←【パスとファイル名取得】
    
  Else
    MsgBox "キャンセルされました"
  End If
  

End Sub
・ツリー全体表示

【80636】Re:型が一致しないがわかりません
お礼  ゆうすけ  - 19/3/25(月) 14:29 -

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

返答が遅くなってしまい申し訳ございません。
マナさんのおかげで無事完成致しました!!
本当にありがとうございました。
・ツリー全体表示

【80635】Re:型が一致しないがわかりません
発言  マナ  - 19/3/22(金) 17:52 -

引用なし
パスワード
   ▼ゆうすけ さん:

>E24、E25、E27に商品分類1が転記され、E26がブランクという状態になっています。


間違えました。

If c.Offset(, 5).Value = 1 Then

にしてください。
そして、この行の意味をよく考えてください。
結果がでればよいというものではありません。
理解できていれば、ご自分で修正できます。

さらに、↓は、必要なくなります。

>上から順番に表示させるために下記のマクロを作成しました。
・ツリー全体表示

【80634】Re:フォルダからファイルを選択後別フォ...
発言  マナ  - 19/3/22(金) 17:39 -

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

filecopyとgetopenfilenameを使うとよいです。

ht tp://officetanaka.net/excel/vba/statement/FileCopy.htm
ht tps://www.moug.net/tech/exvba/0060013.html
・ツリー全体表示

【80633】フォルダからファイルを選択後別フォルダ...
質問  katsura E-MAIL  - 19/3/22(金) 15:28 -

引用なし
パスワード
   エクセルファイルを選択するウィンドウを開き、コピーするエクセルファイルを選択した後に別フォルダへ同じ名前で保存するマクロを作成したいのですが、どうやったらよいか教えて頂けたらよろしくお願いいたします。
・ツリー全体表示

【80632】Re:型が一致しないがわかりません
回答  ピンク  - 19/3/22(金) 15:09 -

引用なし
パスワード
   ▼ゆうすけ さん:
>Sub Tumeru()
>Dim i As Integer, j As Integer
>j = 1
>For i = 24 To 46
>If (Range("E" & i).Rows <> "") Then
>j = j + 1
>Range("E" & i).Copy Range("E" & j)
>Range("E" & i) = ""
>End If
>Next i
>End Sub

Sub Tumeru2()
  Dim v As Variant, c As Range, i As Long
  
  With Range("E24:E46")
    ReDim v(1 To .Count)
    For Each c In .Cells
      If c.Value <> "" Then
        i = i + 1
        v(i) = c.Value
      End If
    Next
    .Value = Application.Transpose(v)
  End With
End Sub
・ツリー全体表示

【80631】Re:型が一致しないがわかりません
発言  ゆうすけ  - 19/3/22(金) 12:09 -

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

下記補足です。
ブランクのセルを詰めて順番に表記する際に
ブランクのセルを削除して詰めることはやりたくありません・・・。
というのも、E24:E49に商品分類1、E56:E59に商品分類2を入力したいため
商品分類1のブランクのセルを削除してしまうと、商品分類2のセルが移動してしまうためです。


>▼マナ さん:
>
>ご回答ありがとうございます!
>マナさんのおかげで、無事転記に成功することが出来ました!
>
>しかし、転記は出来たのですが今度はセルを上から詰めて表示することに苦戦しています。
>
>・ワークシート"1"のリストは
>K13、K14、K16が商品分類1
>K15が商品分類2となっています。
>
>こちらで作った転記のマクロを実行すると
>ワークシート"2"の
>E24、E25、E27に商品分類1が転記され、E26がブランクという状態になっています。
>E24:E49の間にブランクを詰めて分類1の商品名を表記させたいです。
>
>上から順番に表示させるために下記のマクロを作成しました。
>ブランクを詰めることは出来ましたが、E2セルから並んでしまい
>どこを変更したらよいのか修正点が分からず悩んでおります。
>ご依頼ばかりで申し訳ございませんが、マナさんのお力をお借り出来たらとても嬉しいです。
> 
>Sub Tumeru()
>Dim i As Integer, j As Integer
>j = 1
>For i = 24 To 46
>If (Range("E" & i).Rows <> "") Then
>j = j + 1
>Range("E" & i).Copy Range("E" & j)
>Range("E" & i) = ""
>End If
>Next i
>End Sub
・ツリー全体表示

【80630】Re:型が一致しないがわかりません
回答  ゆうすけ  - 19/3/22(金) 10:42 -

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

ご回答ありがとうございます!
マナさんのおかげで、無事転記に成功することが出来ました!

しかし、転記は出来たのですが今度はセルを上から詰めて表示することに苦戦しています。

・ワークシート"1"のリストは
K13、K14、K16が商品分類1
K15が商品分類2となっています。

こちらで作った転記のマクロを実行すると
ワークシート"2"の
E24、E25、E27に商品分類1が転記され、E26がブランクという状態になっています。
E24:E49の間にブランクを詰めて分類1の商品名を表記させたいです。

上から順番に表示させるために下記のマクロを作成しました。
ブランクを詰めることは出来ましたが、E2セルから並んでしまい
どこを変更したらよいのか修正点が分からず悩んでおります。
ご依頼ばかりで申し訳ございませんが、マナさんのお力をお借り出来たらとても嬉しいです。
 
Sub Tumeru()
Dim i As Integer, j As Integer
j = 1
For i = 24 To 46
If (Range("E" & i).Rows <> "") Then
j = j + 1
Range("E" & i).Copy Range("E" & j)
Range("E" & i) = ""
End If
Next i
End Sub
・ツリー全体表示

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