思考酒後

自分に入ってきた情報を定着、深化するために文章化

MENU

【Excelマクロ】データの最深行と最浅行を検出するマクロを作ったよ。

セルの最深行は前々からやり方知ってたし、1行で検出できるのは知ってたんだけど、逆に最浅行を検出できるマクロを作りました。前提条件は途中で未入力のセルがなく、上から下まですべてセルが埋まっていることです。

 

結論:作ったマクロの全コード

Sub 最深行と最浅行()

Dim i As Integer
Dim LAST As Integer


'LASTは最深行
LAST = Cells(Rows.Count, 1).End(xlUp).Row

'FRONTは最浅行
'空白のセルにより判定
For i = 1 To 100
If Cells(LAST - i, 1) = "" Then
Exit For
End If
Next i

'LASTとiによって上からの行数を検出
FRONT = LAST - i + 1

End Sub

 

 

 

 

最深行

▽最深行は1行マクロで解決。優秀。この場合は7行目。

'LASTは最深行
LAST = Cells(Rows.Count, 1).End(xlUp).Row

 

 

最浅行

▽最浅行はこんな感じ。最深行から上に向かって検索(LAST-i)していって空白のセルを見つけたら検索終了。LASTとiで上からの行数へ変換。この場合は2行目。

'FRONTは最浅行
'空白のセルにより判定
For i = 1 To 100
If Cells(LAST - i, 1) = "" Then
Exit For
End If
Next i

'LASTとiによって上からの行数を検出
FRONT = LAST - i + 1

End Sub

 

 

割と使用しそうなので、ブログに残しておきます。

個人的によく使うコードのメモ【Excelマクロ】

 こんにちは、masaです。

 嫁の仕事を手伝う一貫でマクロを作ってるときに、「前使ったことあるコードなのにネットでいちいち調べてイライラする」となったので、よく使うコードをここにメモしておこうと思います。

  

  • 全般
    • 全般1.任意の行を削除する。
    • 全般2.最深部(最下部)のデータ位置を取得
    • 全般3.指定した行で未入力のセルがあればその行を削除する。
    • 全般4.セルの内容を配列として記憶する。
  • シート関係
    • シート1.シートの数を取得
    • シート2.シート名を取得
    • シート3.シート名を変更する
    • シート4.一番右側のシートを選択
    • シート5.一番右側にシートを追加する
    • シート6.左からi番目のシートを選択
  • グラフ関係
    • グラフ1.シート上にあるグラフを選択する。
    • グラフ2.グラフ上にある線の数を取得
    • グラフ3.グラフの位置を移動
    • グラフ4.グラフの大きさを変更
    • グラフ5.凡例の追加
    • グラフ6.軸ラベルの設定
    • グラフ7.フォント変更(明朝)、フォントサイズ変更(11pt)
  • 図形関係
    • 図形1.選択した図形を任意の位置に移動する。
    • 図形2.図形を選択したときのみマクロが動作する。
  • おわりに

 

f:id:masa_mn:20201010145150j:plain

続きを読む

散布図を自動作成するマクロを作ったよ!(凡例4個、線の色:黒・赤)

 こんにちは、masaです。
 グラフの内容を変更するときは右クリックを使いがちだったり、操作性がいまいちだったりでイライラするなぁと感じる日々です。

 今回は散布図(縦軸と横軸にそれぞれデータが入力されているグラフ)を自動生成するマクロを作ったのでメモがてら機能について紹介していこうと思います。

 

▽(B6:C22)、(E6:F22)、(I6:J22)、(L6:M22)にデータが入った状態でマクロを起動すると下にある散布図が自動的に作成されます。

f:id:masa_mn:20211013134007j:plain

 

f:id:masa_mn:20211013133116j:plain



続きを読む

【Excelマクロ】グラフの線の書式を一括で修正・統一するマクロについて

 こんにちは、masaです。

 仕事でグラフの線の書式を一つずつ地道にちまちまと手動で変更するのがめんどくさくなって色々調べて、自動化できたので記録を残しておきます。

 グラフの線の書式を一括で修正・統一するまでの工程は以下の通りです。

  1. グラフ上にある線の数(a)を取得する。
  2. 1からa番目までループするようにする。
  3. 線種を実線で、黒で、1ptで統一するように指定する。

 

f:id:masa_mn:20200727141919j:plain

続きを読む

【Excelマクロ】同じ形式のシートから指定したセルのコピペをひたすら繰返すマクロ

 こんにちは、masaです。

 仕事であるシートのセル番地:A6をコピーして、一番右のシートのB行に上から順番にコピペする的なダルい作業の自動化に成功したのでメモ書き程度に書いていきます。

 

 全体のコードも丸っと転用できますし、所々切り取っても今後役に立ちそうなパーツがあるのでそれについてもメモしておきます。

 

続きを読む

【Excel】下から検索して一番深いデータを取得する関数ワザ

 こんにちはmasaです。仕事で調べものをしていてExcel関数を用いて下から検索して一番深い(下)のデータを取得するワザを発見したので備忘録として書いておきます。

 

 =LOOKUP(1,0/(参照範囲="検索値"),対応範囲)

’一般的なLOOKUPと違い検索するワードではなく、1を検索値としています。小難しい説明は分かりませんがこれで下から検索ができるようです。

 

▼下にデータが増えることを想定して検索範囲の終点の方は列のみ絶対参照としています。

f:id:masa_mn:20190317152846j:plain

【Excelマクロ】インプットボックスの使い方をまとめておく【超簡易】

 こんにちは、masaです。

 今日は自分用のメモとして「インプットボックスの使い方」についてまとめておこうと思います。

 「メッセージボックス」と混同しがちだけど、正しいのは「インプットボックス」。 

 

 たまにしか使わないから忘れちゃうんですよね…。

 

続きを読む

【Excelマクロ】配列の中から最大値を抽出するマクロ

 こんにちは、masaです。

 今日は自分用のメモとして「配列の中から最大値を抽出するマクロ」についてまとめておこうと思います。

 

 Excel関数では=max(範囲選択) で一瞬で終了しますが、内部データとして持ちたい場合を想定して書いています。

   最小値を抽出するこちらの記事の派生です。

www.think-and-try.xyz

 

 

続きを読む

【Excelマクロ】配列の中から最小値を抽出するマクロ

 こんにちは、masaです。

 今日は自分用のメモとして「配列の中から最小値を抽出するマクロ」についてまとめておこうと思います。

 

 Excel関数では=min(範囲選択) で一瞬で終了するのですが、マクロの内部データとして配列の中から最小値を抽出しておく必要があったので、試行錯誤した次第です。

 

続きを読む

【Excelマクロ】起動時もしくは終了時に自動的にマクロを起動させる方法と活用例4つ

 こんにちは、masaです。

 もう少ししたら自分で作ったExcelファイルを他の人に編集してもらって、再度自分がそのファイルを編集する機会があります。しかも30人超えの人に。

 なので、極力入力ミスしないで欲しい。引いては自分の作業を楽にしたいということで『起動時もしくは終了時に自動的にマクロを起動させる方法』を学び、まとめました。

 自分の場合は、念には念を入れて起動時も、終了時も自動的にマクロを起動させるように設定しました。

 ただし、使う人がうざったくないように条件を満足(=入力して欲しいところが入力してくれていれば)してくれていれば、その後は一切起動できない仕組みを取り入れています。

続きを読む

【Excelマクロ】表を1行ずつ抜粋してシートを分割するマクロ

 こんにちは、masaです。

 今日は自分用のメモとして「表を1行ずつ抜粋してシートを分割するマクロ」についてまとめておこうと思います。

 

 10行くらいは手動でやる方が早いですが、100行とか、1000行とかを分割する場合はコードにしてしまった方が早いですし(正確なので)、コードにしてみました。ぶっちゃけあまり需要がなさそうなんですけどね…汗

 

 ▽以下の図がコードの主旨・意図です。

f:id:masa_mn:20181113162803p:plain

 

続きを読む