Excel総合相談所 134
レス数が1000を超えています。これ以上書き込みはできません。
▼━質問テンプレ (出来れば使ってね) ━━━
【1 OSの種類 .】 Windows**
【2 Excelのバージョン 】 Excel**
【3 VBAが使えるか .】 はい・いいえ
【4 VBAでの回答の可否】 可・否
▼━関連スレ━━━━━━━━━━━━
前スレ
Excel総合相談所
https://find.5ch.net/search?q=excel
Excel VBA 質問スレ
https://find.5ch.net/search?q=excel+vba
【質問不可】Excel総合相談所スレの雑談・議論スレ
https://find.5ch.net/search?q=excel+%E3%80%80%E7%9B%B8%E8%AB%87%E6%89%80 >>949
MSのサイト見る限り対象になってる
ただ、実際に可能かどうかは試してみないとわからない こんなかんじ
ttps://dotup.org/uploda/dotup.org1832162.png
ttps://dotup.org/uploda/dotup.org1832161.xlsx.html ↑2021年以降はすべて令和3年表示になるので注意 令和4年以降も表示したい場合は自分で書式を追加しないといけない
それと、条件付き書式なので表で多用すると書式が増殖して動作が重くなるかもしれない。適用先を単独セルじゃなく範囲にするなど自己管理が必要 【1 OSの種類 .】 Windows8.1
【2 Excelのバージョン 】 Excel2016
【3 VBAが使えるか .】 はい
【4 VBAでの回答の可否】 可
範囲は A1:F12 です。
3行でワンセットとなり,5セットで15行になります。
各セットとも,一番上の行,つまり1/4/7/10行にランダムに背景色(青・黄・赤)がついています。
それぞれの色がついたセルの2行下の部分,つまりワンセットの3列目に数値が表示されています。
この数値を各背景色ごとに合計したいのです。
よろしくお願いいたします。 誤記があったため,再度書き込みます。
【1 OSの種類 .】 Windows8.1
【2 Excelのバージョン 】 Excel2016
【3 VBAが使えるか .】 はい
【4 VBAでの回答の可否】 可
範囲は A1:F12 です。
3行でワンセットとなり,5セットで15行になります。
各セットとも,一番上の行,つまり1/4/7/10行にランダムに背景色(青・黄・赤)がついています。
それぞれの色がついたセルの2行下の部分,つまりワンセットの3行目に数値が表示されています。
この数値を各背景色ごとに合計したいのです。
よろしくお願いいたします。 色で集計は無理 青=1、黄=2というふうに色をいったん番号に置き換え、番号を元に色付けするべき 色で集計は無理 青=1、黄=2というふうに色をいったん番号に置き換え、番号を元に色付けするべき >>944
ありがとうございます、939です。
行の高さの変更と画像の位置修正を同時にVBAでやっているため、改ページの位置は
マクロ動作時に知りたいです。
その後いろいろと調べて現在下記のような状態なのですが、これだとE5が選択されるだけで
画像の位置が変わりません。どこがおかしいかわかる方いますか?
Cells(2, 5).Activate
For I = 1 To ActiveSheet.Shapes.Count
For J = 2 To ActiveSheet.HPageBreaks.Count
ActiveSheet.Shapes(I).Select
Selection.ShapeRange.Top = ActiveCell.Top
Selection.ShapeRange.Left = ActiveCell.Left
Cells(ActiveSheet.HPageBreaks(J).Location.Row, 5).Activate
Next
Next >>958
わかりました。やっぱりそうなんですね。では,質問をし直します。
範囲は A1:F12 です。
3行でワンセットとなり,5セットで15行になります。
各セットとも,一番上の行,つまり1/4/7/10行にランダムに数値(1.2.3…)が表示されています。
それぞれの数値のセルの2行下の部分,つまりワンセットの3行目にも別の数値が表示されています。
この数値をワンセットの1行目の数値ごとに合計したいのです。
1,2,3,3,2,4
○,■,■,△,■,▲
5,6,3,5,4,2
1行目が1であるセットの2行下の合計→5
1行目が2であるセットの2行下の合計→6+4=10
1行目が3であるセットの2行下の合計→3+5=8
1行目が1,2,3でないセットについては集計不要
としたいのです。よろしくお願いいたします。
また,今回の件でやっかいなのは,このファイルが別のところから週1のペースで配布されるため,ファイルにあらかじめ表や数式を埋め込めないのです。
よって,マクロをコピペしたほうが手間が少ないので,マクロでの解決の方がありがたいです。(マクロにパスワードなどは設定されていません。)
配信されたファイルに,自分で解決マクロをコピペし,そのファイルは自分の手元のみに残り,誰かに使わせることはない。ということです。 >>959
こんな感じ?
ただこのマクロ、ページと画像のindexが合ってる保証がない
要は2P目の画像を最初に作ったあとに1P目の画像を作った場合、このマクロを走らせると入れ替わってしまう
そこだけ目視にするか、
IDが順番どおり並んでるか確認するマクロを別途作るかだな
Sub foo()
基準列 = 5 'E列
For ページ = 1 To ActiveSheet.HPageBreaks.Count + 1 'ページを基準とする。余計ややこしかったらすまん
'移動
If ページ = 1 Then
Cells(2, 基準列).Activate
Else
Cells(ActiveSheet.HPageBreaks(ページ - 1).Location.Row + 1, 5).Activate
End If
ActiveSheet.Shapes(ページ).Select
Selection.ShapeRange.Top = ActiveCell.Top
Selection.ShapeRange.Left = ActiveCell.Left
Next
End Sub >>960 つくった 拡張子はxlsmに変更してから開いて。VBAがつかえるならこれくらいつくればいいのに
ttps://dotup.org/uploda/dotup.org1833576.txt.html まちがえた
誤
For i = 1 To 5
For j = 1 To 6
正
For i = 1 To 6
For j = 1 To 5 >>961
これでいけそうな感じです、ありがとうございます
画像のindexについてはすべて同じ画像なので問題ないです
ページが増えて画像が足りなくなる場合に手動でコピー以外に方法がないか
もう少し考えて見ます >>964
同じ画像を使うなら、カメラ機能ってのがある。今は図のリンク貼り付け、って言うんだっけな
もしよかったら試してみて、画像は一個だけで済むので軽くなる
ただ、動作は重くなるかも知れない。
それか、行のヘッダを使っても画像は一枚で済むと思う。ただ印刷用の調整はしづらく成る >>965
すでにデータと画像が入力済みのブックを修正しているのですが、データが3ページなら
画像も3ページまで1枚ずつで3枚(同じ画像が3枚)、4ページなら4枚、となっていて、
それの行の高さを高くするために画像が足りなくなる場合がある、という状態です。
画像が足りない場合のコピーについては以下で行けそうです
Sub copy()
Rows.RowHeight = 25 '先に高さを変えてページ数を確定(現状は18)
Dim 頁数 As Integer
Dim 画像数 As Integer
頁数 = ActiveSheet.HPageBreaks.Count
画像数 = ActiveSheet.Shapes.Count
For N = 0 To 頁数 - 画像数 '足りない分の画像を補充
ActiveSheet.Shapes(1).copy
ActiveSheet.Paste
Next N
Call foo
End Sub
961で教えていただいたプロシージャ(foo)の上部にこれをそのまま追加したら
Cells(ActiveSheet.HPageBreaks(ページ - 1).Location.Row, 5).Activate
の部分が「インデックスが有効範囲にありません」とエラーになってしまうので
Callで呼び出してみたらうまくいきました >>962-963
ありがとうございます。
作っていただいたマクロを拝見し,基本的な構造がわかりました。
それを実情に合わせるのに,こんな時間までかかってしまいました。
私のマクロのスキルはそんな程度です。
これで今週からずいぶん楽ができそうです。
本当にありがとうございました。 VBAってどうやって勉強すればいいの?
パソコン教室?専門学校? 金があるならオフィス田中のセミナー
無いなら業務をいかに楽できるかを考えて実行していれば自然と IE上のページで2時間毎に自動ログアウトされるのが鬱陶しいのです
最後のページ操作から2時間してから操作しそうとする(何かしらのリンクをクリックする)とパスワード入力画面が出る仕様ですが何かないでしょうか >>970
IEじゃなくchromeなら拡張機能もtemp monkeyだっけな、あれ使えば行ける
ただ使い方は他で聞いてくれ あ、一応excelのVBAでできないかなって話です >970
vbaにタイマーないからめんどくさいな
セッションを保持したいなら、jsか何かで裏で開くとかやってみると行けるかも application.ontimeで適度に再読み込み >>968
VBA学びたいからパソコン教室いくよ。独学じゃしんどいわ。 VBAって所詮BASICだし本を何冊か読んで順番にやれば、仕事で使う簡単なシステムを作る程度なら独学でなんとかなったな
アルゴリズムを理解できるかどうかだと思う >>978
言語はなんでもプログラミングになれてるかどうかっての大きいね
私はエクセルは4ヶ月ちょいだけど元プログラマだからな >>976
セキュリティの問題でフリーソフト使えないのよ
>>975だと作業中に不意にログインし直し入って作業水の泡みたいにならないかな vbaは標準モジュール、シートモジュールが恐ろしくとっつきにくい
いきなりスコープを覚えにゃならん
標準モジュールだけにしとけば良かったのに >>980
別のIEインスタンス作って、そっちをリフレッシュするんだ
そうすりゃセッションが途切れないはず
chromeで言う別タブみたいな感じ >>970
板違いになるがhtmlヘッダーのmetaタグでrefreshで自動更新すれば? >>983
サーバー側に手を入れろってか?
それができるなら自動ログアウト切るだろ エクセルのセルからVBAを呼ぶことは出来るのでしょうか?
例えば"A1"のセルに CALL "なんたら"ってサブルーチンで
計算させた値を返すようなことはできるのでしょうか? >>986
出来るよ
A1セルの値が○○になったら等の条件で >>986
vba ユーザー定義関数
とかでググるがよい >>987
>>988
どもです Functionってのを使えばいい見たいと解りました >>989
ユーザー定義関数なんて使わないよ
イベントで大丈夫 >>991
gengouのgeじゃね?知らんけど。 エクセル2010 平成バッチを当ててるけど、令和になりません。
=DATESTRING(TODAY()) → 平成31年5月1日 になります。
残念。 令和はVBAを学ぶ時代にしたい。みなさんよろしくお願いします。 >>994
いいね!自分はExcel統計解析を学ぼうと思っている このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 75日 16時間 43分 13秒 5ちゃんねるの運営はプレミアム会員の皆さまに支えられています。
運営にご協力お願いいたします。
───────────────────
《プレミアム会員の主な特典》
★ 5ちゃんねる専用ブラウザからの広告除去
★ 5ちゃんねるの過去ログを取得
★ 書き込み規制の緩和
───────────────────
会員登録には個人情報は一切必要ありません。
月300円から匿名でご購入いただけます。
▼ プレミアム会員登録はこちら ▼
https://premium.5ch.net/
▼ 浪人ログインはこちら ▼
https://login.5ch.net/login.php レス数が1000を超えています。これ以上書き込みはできません。