質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%

Q&A

解決済

3回答

746閲覧

あるセルの値を見て●を移動させたいのですがそのような実装はexcel出来るのでしょうか?

ma2hiro

総合スコア159

0グッド

0クリップ

投稿2021/07/07 07:54

編集2021/07/07 07:55

お世話になっております。

件名の通りなのですが

excel

1値  5セル分のメモリ 26.5 -------------●------ 34  --------●----------- 43.3 -------●------------

↑の値を見て↑でその場所に●(アイコンでも丸で変換される文字でも良い)
が移動するようなexcelを実装したいと思っております。

そのような場合なんという語句でググれば良いのか ご助力頂けないでしょうか?

用件のみで失礼しますが何か情報をお持ちな方はコメント頂けますようお願い申し上げます。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

tosi

2021/07/07 08:16 編集

wsheet_Changeをシートへ書き込むと、A1~A3入力直後に値が取れます。 この値を使って、隣セルへ文字-と文字●と文字-を複数連続で書けば出来そうです。 Private Sub wsheet_Change(ByVal Target As Range) If Target.Row >= 1 And Target.Row <= 3 And _ Target.Column >= 1 And Target.Column <= 1 Then ' 'Targetに6.5とかの値が入る。 'この部分へ色々とVBAを記載する。 ' End Sub
ma2hiro

2021/07/07 08:37

tosi様 コメントありがとうございます。 仰るようにVBAだったら出来なくも無い気がするのですが メンテナンス等を考え出来ればVBAを使わずにしたいと思っております。 うーん やっぱりVBA使わないと無理なのでしょうか?
YT0014

2021/07/07 09:32

見本のエクセル画面か、もう少し詳しい説明をいただけませんか。 現状では、指定の位置のセルに●を表示したいのか、グラフを表示したいのか、それ以外のことを行いたいのか、判別できません。 また、このような機能の作成は、裏技的なアイディアが必要な場合が多く、検索などで情報を得るのは難しいかと思います。
matobaa

2021/07/07 09:46

「Excel 文字列 繰り返し 結合」とかですかね。REPTとCONCATENATEあたり。 あるいは「スパークライン」「やまガントチャート」とか。 「Excel イナズマ線」とか。
guest

回答3

0

そんなときこそ ”スパークライン” 機能を、

イメージ説明

マイクロソフトサポート : スパークラインを作成する

スパークラインは、シート内の個々のセル内に収まる小さなグラフです。 サイズを小さくしたことで、大きなデータ セットのパターンを簡潔にわかりやすく示すことができます

投稿2021/07/07 10:05

Yoshi88

総合スコア623

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

ma2hiro

2021/07/07 11:04

ありがとうございます。 スパークライン使えるか確認してみますっ 本当に情報ありがとうございました。
ma2hiro

2021/07/14 08:19

駄目でした…… スパークラインを使うスキルが私には足りなかった模様です…… Yoshi88様のようにスパークラインが横棒で表示されないのですが どちらのグラフでやったのかお教え頂けないでしょうか? 挿入>スパークライン>縦棒 では横棒とならないのです…… お忙しい所大変申し訳無いのですが ご返答頂けますと嬉しく思います
ma2hiro

2021/07/14 08:23

と思ってリンク先を見てみると [エクセル セルの中にグラフを表示する](https://www.tipsfound.com/excel/05044) こちらはデータバーですね…… スパークラインで横棒が出来れば良いのですが…… もしくはデータバーでバーではなくてアイコンが出来れば良いと思っております。 コメントありがとうございました。
guest

0

自己解決

大変申し訳ございません。
色々調べてみたのですがデフォルトでは無いようなので
メンテナンス性は下がるのですが結局VBAで実行する事にしました……

Sub yajirusi() '対象シート Dim sh As Excel.Worksheet Set sh = ActiveSheet 'ここは ActiveSheet でも Sheet2 でも '開始行、終了行…実際は A 列の内容で判断した方が良いかも Const START_ROW As Long = 1 Const END_ROW As Long = 2 'シェイプの全削除 sh.Shapes.SelectAll Selection.Delete '条件付き書式の全削除 sh.Cells.FormatConditions.Delete 'データバーの条件付き書式 sh.Range("C" & START_ROW & ":C" & END_ROW).FormulaR1C1 = "=RC[-1]" Dim row As Long, bar As Excel.Databar For row = START_ROW To END_ROW Set bar = sh.Cells(row, 3).FormatConditions.AddDatabar bar.BarFillType = xlDataBarFillSolid bar.ShowValue = False bar.BarColor.Color = vbGreen bar.MinPoint.Modify xlConditionValueNumber, sh.Cells(row, 7).Value bar.MaxPoint.Modify xlConditionValueNumber, sh.Cells(row, 8).Value Next 'データバーの右端に「↓」を表示 Dim l As Single: l = sh.Range("C1").Left '左端 Dim r As Single: r = sh.Range("G1").Left '右端 Dim w As Single: w = r - l '幅 Dim t As Single, b As Single '上端,下端 Dim min As Double, max As Double, cur As Double Dim rate As Single, x As Single Dim ln As Shape For row = START_ROW To END_ROW t = sh.Rows(row).Top b = sh.Rows(row + 1).Top cur = sh.Cells(row, 2).Value min = sh.Cells(row, 7).Value max = sh.Cells(row, 8).Value rate = CSng((cur - min) / (max - min)) x = w * rate + l '「↓」の位置 Set ln = sh.Shapes.AddLine(x, t, x, b) ln.Line.Weight = 2! ln.Line.ForeColor.RGB = vbRed 'ln.Line.EndArrowheadStyle = msoArrowheadOpen ln.Line.BeginArrowheadStyle = msoArrowheadOpen Next End Sub

みたいな感じです……

コメント下さった皆様ありがとうございました。

投稿2021/07/26 01:50

ma2hiro

総合スコア159

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

こういうこと?

Excel

1=REPT("-",INT(A1))&"●"&REPT("-",19-INT(A1))

あるいは、

Excel

1=REPLACE(REPT("-",20),INT(A1)+1,1,"●")

投稿2021/07/07 09:48

編集2021/07/07 09:56
jinoji

総合スコア4592

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問