• ベストアンサー

OpenOffice表計算のマクロ(Basic)で選択中の結合セルからサイズを取得する方法について教えてください

new-OKWaveの回答

回答No.2

#1です。 質問者さんが社会人との前提で少し厳しい事を記します。(小中学生ならば無視して下さい。) >・・・マクロを作る僕自身が直接その職場に関わることはなくトラブル時の保守や責任を考えると・・・ ⇒では誰がその仕事に対する責任を取るのですか? 質問者さんは会社の中では無く、自宅の自分のPCを用いてボランティアでされているのですか? 社会人ならば責任を取れない事柄に対しては請け負わずに断るべきです。少なくとも勘違いで請け負ってしまったとしても今からでも断るべきです。 >また、書籍を購入するのは金銭的に余裕がないこともあり、目的の情報が確実に載っていること確認できないと厳しいのが現状です。 ⇒パソコンを保持して、ネットまでされている方が\3,000程度の参考書を調べもせずに購入する気が無いというのは他力本願過ぎると思います。 以上の事から、ご自身の保身を最優先にされている様なのでCalcでは無く今後もExcelを使っていく事をお奨めします。 因みにCalcでも「結合したセル」のサイズ調査は少し頭を使えば出来ます。(添付図参照)

taka6327
質問者

補足

#1さんへ たぶん#1さんがせっかく丁寧なご回答をして頂いたのに、僕がそれをすべて否定するような形になったことでお怒りになられているのではないかと思います。 その点については深く感謝とお詫びを申し上げます。 今後、教えて!gooを利用して質問する際は余計な状況説明を省き質問のポンとを明らかにするなどして、このようなことをがないよう気をつけたいと思います。 (ちなみに、仕事の考え方は様々ありますが保守が難しい場合、変更点・トラブル発生の可能性の最小を目指すのは方法としてあると僕は考えています。書籍の方は最寄の書店数店に立ち寄ってみましたがOpenOffice関連の本自体がほとんどない状態でした。僕のような関係ない人間のところにも話が来るくらいなので、もうちょっと置いていてもいいのになー、と思ったりします) #1さん、 重ねて、どうももうしわけありませんでした。

関連するQ&A

  • 選択範囲のセルを1行ずつ結合するマクロ

    こんにちは、いつも参考にさせていただいております。 セルを範囲選択し、 1行ごとに結合させる方法はないでしょうか。 手作業ではなくマクロでの方法を探しています。 イメージとしては (1)範囲選択する (2)マクロ実行する  →列の範囲を1行ずつ、選択している範囲だけ各行を結合 図も添付いたしますので、どうかアドバイス・ヒント頂けないでしょうか。 よろしくお願いいたします。

  • 結合セルの値取得について

    お世話になります、 (環境、VISTA&EXCEL2000) 結合セルに名前をつけて その値をマクロで取得したいのですが エラーになります。 結合セルには結合する前に名前をつけてから 結合してあります。 Dim ws As Worksheet ' On Error GoTo errTrap Set ws = Worksheets("xxxxx") '(1) ws.Range("DenDate").Value = Date '(2) MsgBox ws.Range("DenDate").Value (2)で「型が一致しません」になります。 宜しくお願いいたします。

  • セル結合をマクロで行ないたい(その2)

    度々お世話になっております。 エクセル2000ですが、例えばA1:C10の範囲を選択した状態で、一発で横方向のみのセル結合をする(A1,B1,C1を結合、A2,B2,C2を結合、・・・A10,B10,C10を結合)マクロは可能でしょうか?

  • Excel(セルの結合マクロ)

    いつもお世話になっております。 Excelのマクロで、選択範囲の中で、下のセルが空白のものは、上のセルと結合されるマクロを作りたいと考えています。 (例1:A1セルに”TEST”が入力されており、A2,A3セルが空白として、A1:A3を選択し、マクロを実行するとA1からA3がセル結合される  例2:A1に”TEST2”B2に"TEST3"が入力されており、A1:B3を選択すると、A1からA3が結合され、B2とB3も結合される) 説明が下手で申し訳ないのですが、お力を貸していただけませんでしょうか? よろしくお願いいたします。

  • 【Excelマクロ】 セルの色取得

    古いファイルを加工することが多々あり、セルに塗られている色を調べる(セルの書式設定→塗りつぶし→その他の色→ユーザー設定)のが非常に面倒です。 RGB値をマクロで表示させる方法を見つけたものの、セルが指定(A1/A2/B1)されています。 <1つ右> Sub 色情報取得() Dim r As Long Dim g As Long Dim b As Long n = Range("A1").Interior.Color r = n \ 256 ^ 0 Mod 256 g = n \ 256 ^ 1 Mod 256 b = n \ 256 ^ 2 Mod 256 Range("A2") = r & "," & g & "," & b End Sub <1つ左> Sub 色情報取得() Dim r As Long Dim g As Long Dim b As Long n = Range("A1").Interior.Color r = n \ 256 ^ 0 Mod 256 g = n \ 256 ^ 1 Mod 256 b = n \ 256 ^ 2 Mod 256 Range("B1") = r & "," & g & "," & b End Sub 調べたいセルにカーソルを置いた状態で実行するマクロをご教示ください。 希望1.画像のように1つ右 or 1つ左、もしくはn個右 or n個下など、表示させたいセルを自由に設定したい 希望2.複数セルを一括で処理したい よろしくお願い致します。

  • セル解除後、各行に値をコピーし結合するマクロ

    A1からC3のセルが結合しており、 そのセル結合を解除すると、A列のみ値がコピーされる。 コピーした後、各行ごとにセルを結合していく…… という処理をしたいと思い、 調べて下記のマクロまでなんとかこぎつけました。 Sub セル結合() Dim date1 As Variant Dim range1 As Range Application.DisplayAlerts = False For Each range1 In Selection.Rows If range1(1).MergeCells = False Then range1(1).Merge Else date1 = Selection.Rows(1).Value With range1 .UnMerge .WrapText = False .ShrinkToFit = False Selection.Value = date1 End With End If Next range1 End Sub ※実行範囲に関しては、  任意選択をした範囲にしたいため、  range(1)にて処理を行いました。 困っているのは、上記のマクロを実行すると、 最初の行のみ結合できないということ。 もうひとつが、 セル結合をしない時に値を左端にコピーすると、 文字が自動縮小されてしまいます。 縮小しないようにするには、 どのような処理を入れたら良いでしょうか? お力添え頂けますと幸いです。 よろしくおねがいします。

  • 選択したセルの座標の取得

    選択したセルの座標の取得 sheet1    A B C   1   2  α     3     sheet1のB2にはαという文字が挿入されており、ハイパーリンクの設定がしてあります。 B2をクリックするとsheet2に移行します。 sheet1で選択したセルの位置を取得したいのですが、上手くいきません。 ご教授の程、宜しくお願いします。  現在の記述は以下の通りです。  Private Sub Worksheet_FollowHyperlink(ByVal Target As Hyperlink)  Dim gyo As Long  Dim ret As Long  gyo = ActiveCell.Row  ret = ActiveCell.Column  MsgBox "行番号" & gyo & "列番号" & ret  End Sub Sheet1のB2を選択して、Sheet2に移行した時に、Msgboxには、 行番号2 列番号2 というようにしたいのです。

  • 「Wordの表のセルの結合情報」をVBAで取得する

    「Wordの表のセルの結合情報」をVBAで取得する方法 EXCELのVBAであれば、下記サイトの下記マクロで判断できるようなのですが、 Word VBAには、「MergeCellsプロパティ」が無くて、駄目でした。 別の方法で判定出来ない物でしょうか? http://officetanaka.net/excel/vba/tips/tips50.htm ---------------------------------------------------------------------- Sub Sample2() Dim i As Long, buf As String For i = 2 To 9 If Cells(i, 1).MergeCells Then buf = buf & Cells(i, 1).Address(0, 0) & "-->結合されています" & vbCrLf Else buf = buf & Cells(i, 1).Address(0, 0) & "-->結合されていません" & vbCrLf End If Next i MsgBox buf End Sub ヘルプを調べましたが、ざっと見たところ載っていないように思います。 経験あるかた居たらご教授頂けると助かります。

  • マクロ 結合セルへ値のみ貼り付けるにはどうしたらよいでしょうか。

    マクロは初心者で、まだまだ勉強しているところです。 シート名「入出金履歴」のデータを顧客コードごとに分かれている別シートへデータを振り分けて貼り付ける、もしくは反映させたいのですが、貼り付け先のセルがシートの都合上、結合セルになっており、下記のマクロだと当然ながらエラーになってしまいます。結合セルをまず、解除してから貼り付けようと思ったのですが、うまくいかず、困っています。 コピー先の結合状態は、7行目から、列A:C、列D:E、列F:H と、3列になるように結合されています。結合されている行の終わりは、A:C(結合されている)列に「合計」の値が入っているセルの行、H列まで、3列になるよう結合されています。 解除する以外に、良い方法があれば是非教えていただきたいです。 よろしくお願いします。 Sub samplea() r1 = ActiveCell.Row r2 = r1 + Selection.Rows.Count - 1 Dim myRange As Range Dim s_no As String For i = r1 To r2 s_no = Cells(i, 2) Range(Cells(i, 4), Cells(i, 9)).Select Selection.Copy Sheets(Format(s_no)).Select Set myRange = Columns("a:c").Find(what:="合計") If myRange Is Nothing Then Debug.Print "Not Fount" Else myRange.Select Selection.End(xlUp).Offset(1, 0).Select Selection.PasteSpecial Paste:=xlValues Application.CutCopyMode = False Sheets("入出金履歴").Select End If Next End Sub

  • エクセル マクロ セルを縦に結合したいです。

    現在、Visual Basicにてコードを作成中です。(初心者です。) 現時点での出来ること 5列目の2~10行目に何か入力されれば その隣のセルに「お疲れ様です」と入力される(ここまではコード出来てます。) 例:B5セルに何か入力があればC5セルに「お疲れ様です」と入力される。   C5セルに何か入力あればD5セルに「お疲れ様です」と入力される・・・ といった内容です。 そのあとやりたい事(ここからコード出来ません) B5セルに何か入力があればC5セルに「お疲れ様です」と入力された後 C5~10行目を縦に結合し、文字を縦書きにする。 C5セルに何か入力があればD5セルに「お疲れ様です」と入力された後 D5~10行目を縦に結合し、文字を縦書きにする・・・ といった内容です。 一応コード下記に載せます。 Sub macro1() Dim a As Variant Dim i As Long Set a = Worksheets("sheet1") For i = 10 To 2 Step -1 If Len(a.Cells(5, i).Value) > 0 Then 'もし、5列目の2~10行目に何か入力されれば a.Cells(5, i).Offset(0, 1).Value = "お疲れ様です" Exit For End If Next i End Sub すいませんがコード記載よろしくお願いいたします。 回答よろしくお願いします。