エクセルマクロ悔しい人教えてください
■ このスレッドは過去ログ倉庫に格納されています
すべてのセルを入力されたら別シートに切り取り張り付けするマクロをしたいですが私わからなくて。教えてくれませんか? 指定範囲を切り取りして別のエクセルに貼り付けるマクロ記録するだけ マクロを記録する、を押す
シートを新規追加する
入力したセルの内容を前のシートからコピーする
マクロの記録終了をおす
これでいけるやろ
後はマクロから再実行すればよし >>2
うーん
10列×10行のマスがあって一行埋まったら別シートに取り出ししたいんだけど…伝わってるかな? こうなんだけど…
それやろうと思ったら
マクロの記録では厳しい気がする 対象のセルを常に監視して、全てがnullじゃなくなった時にカット&ペーストすれば良いがマクロの使い方としてループ待機とかやるの?
それともとある条件がトリガーとなるようなマクロのスタート方法があるの? >>13
データを移すボタンポチっと押したら移せるようになりたい 関係無いかもだけど最後に埋まるのが必ず日付欄になる
どうにかマクロ出来ますかね? セルの内容が更新されたらは
changeでいけたと思う >>4のマクロ記録したらマクロを開いて
コピーする範囲がrange("6a:6h")みたいになってるから
range(application.activecell.row&"a:"&application.activecell.row&"h")
に書き換えすれば選択してる行の値をコピーしてくれる >>14
埋まったときに自動じゃねえの?
最初の話だと入力されたらってなってるが
それならworksheet_changeイベントでなくコマンドボタンにマクロ登録か >>18
埋まったら自動がほんとはいいけどマクロ登録じゃ出来ないから妥協した
出来るの? VBA初心者だけど埋まっただけで自動で動くものなの?
ボタン押さないと動かない気が 日付欄に入力してenter押すことでマクロが動くようにすりゃいいじゃんか >>19
出来るよ
元ファイルxlsxに直して上げられるなら暇だし組んでやってもいい >>21
そうだよね~それともすごくエクセルが重くなるか…
そう言われたら妥協してボタンで更新に変更する イベントプロシージャ セルの値
とかで検索したら自動判定するやり方は出てくるよ >>23
ごめんね嘘付いてた…
エクセルじゃなくてcalcなんだわ… >>26
あーcalcマクロは触ったことすらねえな
すまん分からん 調べたらworkbook_openとworksheet_changeでいけそうな気がするな
workbook_open
worksheet_change
なんらかの変数=false
for(i=0;i<10;i++){
なんらかの変数=cell(i, 10)!=null
}
if(なんらかの変数) カットペースト
end
もう5年以上vba触ってないからなんとなくだがこんな感じに出来るのかな… >>25
なるほど!
日付セルを特定→特定した行を選択→切り取り→別シートに張り付け→別シートの行を追加→前シートの行を削除すればいいんだな? >>28
だいたいそんな感じだわな
多分>>9のイメージだと下に追加していきそうだからターゲットシートの最下段取得が要るか
後は不正値で埋まったときにも勝手に飛んでいかれるとうざいからそこら辺のチェック入れるとか >>27
簡単にいじってる感じ基本VBAと変わらなそうだよ >>30
そう!上に追加していくぅよ
月またいだら一行あけるつもり >>29
>>28が書いてくれてるみたいに
ifで条件分岐させるのがいいと思うけど
そんな感じだね >>34
>>28の理解が追い付かなかったから
>>31に肉着けて行こうと思う!
なんかダメそうな点あるかな? >>30
まぁ細かい処理や例外処理みたいなのが必要なのは承知
ここまで出来れば後は拡張する感覚で>>1が求めてるもの出来ると思う
単純にこんなんじゃなくてもっと良い方法もあるかもしれんがな みんな相談乗ってくれてありがとう
またみんなに聞くね
はじめに整理したいファイル写真撮ればよかったね反省
https://i.imgur.com/onXE7pC.jpg >>35
>>31のやり方で範囲しようとしてるのが
10×10の範囲だとしてやっぱり>>28みたいな
1行ずつ判定して条件分岐するやり方になると思う >>38
セルの値取り出したあと、行の範囲の指定をするのが出来ないってこと? >>28
バグあるな
なんらかの変数は数値型が良いな
なんらかの変数+=cell(i, 10)!=null?1:0
if(なんらかの変数==10) カットペースト >>39
>>31だとどこかのセルになにか入力されたら
それがA1:B5の範囲のセルだとメッセージ出す
みたいなマクロだからマクロが走るタイミングは
「どこかのセルに何か入力されたら」でいいとして
行が埋まったとかはあるかを上から下まで1行ずつ判定して
あるならカットペーストないなら次の行へ
ていう動きをさせるのが確実だとは思う
長くてごめんね ボタンポチで転記するってことは埋まってる行が複数あったら一纏めに処理する感じです?
どこかの行が埋まった瞬間にその行を転記してしまうのならWorksheet_Changeでいいと思うけど、
Worksheet_Changeはボタンマクロとして使えなかったような 1行ずつ判定→forのとこ
行が埋まってるならカットペースト→ifのとこ
>>28と>>40が書いてくれてる >>42
>>44
なるほどなるほど!今やっと理解した!ありがとう >>41
1.ファイルが開かれた時に処理開始(workbook_open)
2.シートが更新された時に下記の処理実施(worksheet_change)
2.1.変数を0で初期化
2.2.ループ(iは0から始まり9まで繰り返す)
2.2.1.セル(i行、10列)がnullでは無かった場合、変数に+1する
2.3.変数が10の場合、切取りと貼付けを実行
2.2.1の処理は行列入れ替えても良いし、多分やりたい事としては行と列がこのプログラムだと逆だよね >>46
それに付け加えたいんだけど
ファイルオープンして日付降順に直した時→処理実行
にしたいんだけどandで行ける? あ、範囲を10×10にしといて降順に直せば勝手に実行するのか…ごめん >>45
10×10の範囲なら人力で目視判断可能だから
特定した行を選択した状態で>>29の切り取りから
やってもある程度うまくはいくと思うけど
人なら「見れば判断できる」を自動でやらせるの難しいよね >>49
でもそこを乗り越えるのが自動なんよ
月毎にチェックすんのだるいし見逃しあったら尚だるいし処理ミスで人の利益取りたくないし はいはいエクセルエクセル
┏━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃ 現場名 ┃ ┃
┣━━━━━╋━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫
┃ 場 所 ┃ ┃
┣━━━━━┻━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫
┃ o 浮き部分 注入工事 ┃
┃  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ┃
┃ ① 現 状 ⑥ ステンレスピン差し込み ┃
┃ ┃
┃ ② マーキング状況 ⑦ 穴 埋め 状 況 ┃
┃ ┃
┃ ③ 削 孔 状況 ⑧ 完 了 ┃
┃ ┃
┃ ④ 孔内 清掃状況 ┃
┃ ┃
┃ ⑤ エポキシ樹脂注入状況 ┃
┃ ┃
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ >>47
並び順変えたらセルの値が変わるから、それでworksheet_changeが発火したらいける気がするし、その場合このままで問題ないはず >>50
そうだね
>>29あらためて読むと最後の行削除があるなら
切り取りじゃなくてコピーにして
同じ条件で処理だけ行削除に
変えてやればいいから簡単になるよ 早くこういう処理を付け加えられる系の共有アプリ誰か開発しろよ ■ このスレッドは過去ログ倉庫に格納されています